如何将javascript变量传递给html表单操作标记

如何将javascript变量传递给html表单操作标记,javascript,html,web,Javascript,Html,Web,我有一个html表单,其中包含名称、经度和纬度文本字段。经度和纬度存储在javascript变量中。你知道如何将名字、纬度和经度通过url发布到服务器上吗?每次我提交表单时,经度和纬度都不会传递到url中?谁能告诉我怎么做 多谢各位 这是我的javascript和html代码: if (navigator.geolocation) { var geolocation = {}; geolocation.latitude = 0; geolocation.longi

我有一个html表单,其中包含名称、经度和纬度文本字段。经度和纬度存储在javascript变量中。你知道如何将名字、纬度和经度通过url发布到服务器上吗?每次我提交表单时,经度和纬度都不会传递到url中?谁能告诉我怎么做

多谢各位

这是我的javascript和html代码:

    if (navigator.geolocation) {
    var geolocation = {};
    geolocation.latitude = 0;
    geolocation.longitude = 0;
    navigator.geolocation.getCurrentPosition(function (p) {
    geolocation.latitude = p.coords.latitude;
    geolocation.longitude = p.coords.longitude;           
    }, function (error) {
    alert("Failed to get GPS location");
    });
    } else {
    alert("Failed to get GPS working");
    }

    function loc() {
    document.getElementById("longitude").value = geolocation.latitude;
    document.getElementById("latitude").value = geolocation.longitude;

    }
html:


姓名:
经度:
纬度:
图片:

您可以向表单中添加元素

var myForm = document.getElementById('myForm');

var longitude = document.createElement('input');
longitude.name= 'longitude';
longitude.value = '100';

var latitude= document.createElement('input');
latitude.name= 'latitude';
latitude.value = '100';

myForm.appendChild(longitude);
myForm.appendChild(latitude);

在表单的操作中,您需要提到要调用的servlet的名称。使用三个隐藏字段存储名称、经度和纬度值。这可以通过使用

document.getElementById('hiddenFieldId1')。值=经度
document.getElementById('hiddenFieldId2')。值=纬度
document.getElementById('hiddenFieldId3')。value=name

这些值可以在servlet中使用
request.getParameter('hiddenFieldId')引用

您需要在js中提交表单:

document.myform.submit()


geolocation
变量尚未设置为全局变量,因此未在函数
loc()
中定义该变量。没有为
geolocation.latitude
geolocation.longitude

指定值。让我们看看表单的HTML,以及您已有的任何JavaScript代码。感谢您的回答。您的意思是地理位置变量应该在IF语句之外吗。如果没有,你能给我一个如何做的示例代码吗?感谢您这个声明
var geolocation={}
应该在if之外生成。再次感谢您的帮助,我应该在代码的哪一部分放置“document.getElementById('hiddenFieldId1')。value=longitude;document.getElementById('hiddenFieldId2')。value=latitude;document.getElementById('hiddenFieldId3')。value=name;”?谢谢
var myForm = document.getElementById('myForm');

var longitude = document.createElement('input');
longitude.name= 'longitude';
longitude.value = '100';

var latitude= document.createElement('input');
latitude.name= 'latitude';
latitude.value = '100';

myForm.appendChild(longitude);
myForm.appendChild(latitude);