我需要将一些表单字段传递给Perl文件,并且我有一个可以解决问题的小表单。
现在我想使用地理位置为经纬度添加2个字段,但我正在为它们填空。我读过它是因为地理定位是异步的,但我找不到如何解决它。我甚至从其他答案中加入了一些提示,但我无法做到。
有人可以帮我解决吗?
这是我的代码:
<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>
答案 0 :(得分:0)
据我所知,问题只是一些javascript错误。
从<body BGCOLOR="#FFFFFF" onLoad="writeLati(locform)">
locform
不存在。您需要使用类似document.getElementById
的内容来获得您期望的内容。 (要使用getElementById,您需要在表单上放置一个ID)。
同样在function getPosition(position)
您正在尝试分配form.latitude.value
,但form
是function writeLati
中的局部变量,无法在此处访问。
在解决这些问题后,它对我有用。