Javascript 将地理位置坐标传递给post表单中的隐藏字段

Javascript 将地理位置坐标传递给post表单中的隐藏字段,javascript,html,forms,perl,Javascript,Html,Forms,Perl,我需要将一些表单字段传递给一个Perl文件,我有一个小表单来完成这个任务 现在,我想使用地理定位为latitude和longitude添加两个字段,但我得到了它们的空白。我读过,这是因为地理定位是异步的,但我找不到解决方法。我甚至采纳了其他答案中的一些提示,但我无法正确理解 谁能帮我修一下吗 这是我的代码: <html> <head> <script type="text/javascript"> var lati =0;

我需要将一些表单字段传递给一个Perl文件,我有一个小表单来完成这个任务

现在,我想使用地理定位为latitude和longitude添加两个字段,但我得到了它们的空白。我读过,这是因为地理定位是异步的,但我找不到解决方法。我甚至采纳了其他答案中的一些提示,但我无法正确理解

谁能帮我修一下吗

这是我的代码:

<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年前,当语言和逻辑完全不同时,我曾经是一名程序员。你能用你的建议更正我的代码并发布吗?