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

时间:2013-02-26 11:24:53

标签: javascript html web

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

谢谢

这是我的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:

    <form name="photo" method="post" action="url">
    <label for="name">Name:</label>
    <input type="text" name="name" id="Text1" value="" />
    <label for="longitude">Longitude:</label>
    <input type="text" name="longitude" id="longitude" />
    <label for="latitude">Latitude:</label>
    <input type="text" name="latitude" id="latitude" />
    <label for="image">Image:</label>
    <input type="text" name="image" id="image" />
    <input type="submit" value="Submit" />
    </form>

2 个答案:

答案 0 :(得分:0)

您可以向表单中添加元素...

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);

答案 1 :(得分:0)

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

完成

document.getElementById('hiddenFieldId1').value=longitude;  document.getElementById('hiddenFieldId2').value=latitude;  document.getElementById('hiddenFieldId3').value=name;

可以使用request.getParameter('hiddenFieldId');

在servlet中引用这些值

您需要在js中提交表单:

document.myform.submit();

geolocation变量尚未设为全局变量,因此未在函数loc()中定义。没有为geolocation.latitudegeolocation.longitude分配值。