Javascript 将地理位置坐标传递给post表单中的隐藏字段
我需要将一些表单字段传递给一个Perl文件,我有一个小表单来完成这个任务 现在,我想使用地理定位为latitude和longitude添加两个字段,但我得到了它们的空白。我读过,这是因为地理定位是异步的,但我找不到解决方法。我甚至采纳了其他答案中的一些提示,但我无法正确理解 谁能帮我修一下吗 这是我的代码:Javascript 将地理位置坐标传递给post表单中的隐藏字段,javascript,html,forms,perl,Javascript,Html,Forms,Perl,我需要将一些表单字段传递给一个Perl文件,我有一个小表单来完成这个任务 现在,我想使用地理定位为latitude和longitude添加两个字段,但我得到了它们的空白。我读过,这是因为地理定位是异步的,但我找不到解决方法。我甚至采纳了其他答案中的一些提示,但我无法正确理解 谁能帮我修一下吗 这是我的代码: <html> <head> <script type="text/javascript"> var lati =0;
<html>
<head>
<script type="text/javascript">
var lati =0;
var longi =0;
function getPosition(position)
{
lati = position.coords.latitude;
longi = position.coords.longitude;
form.latitude.value = lati;
form.longitude.value = longi;
}
function writeLati(form)
{
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(getPosition);
} else {
form.latitude.value = "3";
form.longitude.value = "5";
document.write("Your browser can't do geolocation.");
}
}
</script>
</head>
<body BGCOLOR="#FFFFFF" onLoad="writeLati(locform)">
<H1>Page Title</H1>
<FORM name="locform" ACTION=../cgi-bin/rally.pl METHOD=POST>
Car Number:
<INPUT TYPE="TEXT" NAME="Number" LENGTH=2 />
<INPUT TYPE="HIDDEN" NAME="Stage" VALUE=0 />
<input type="HIDDEN" name="latitude" />
<input type="HIDDEN" name="longitude"/>
<P>
<INPUT TYPE=SUBMIT VALUE="Send">
</FORM>
</body>
据我所知,问题只是一些javascript错误 从 locform不存在。您需要使用document.getElementById之类的东西来获得您在这里期望的内容。要使用getElementById,显然需要在表单上添加一个ID 也在功能getPositionposition中 您正在尝试分配form.latitude.value,但是form是函数writeLati中的一个局部变量,无法在此处访问
在解决了这些问题后,它对我起了作用。很抱歉打扰您,但我不是一名程序员,30年前,当语言和逻辑完全不同时,我曾经是一名程序员。你能用你的建议更正我的代码并发布吗?