Javascript 用地理位置坐标填充字段

Javascript 用地理位置坐标填充字段,javascript,jquery,geolocation,Javascript,Jquery,Geolocation,我试图用地理位置查询的结果填充两个字段。这是我写的第一个Java脚本之一 这是我目前的代码: 我哪里出错了?这是因为您使用的是input.html(…)而不是input.val(…)input.html(…)设置元素的innerHTML属性。然而,这不是设置输入元素值的方式。您想设置值属性/属性,因此使用input.val(…) 谢谢你的帮助。它起作用了!不过我只有一个问题,每次我访问页面时,它似乎会自动填充字段,而不是等待我按下按钮。你能看到为什么会发生这种情况吗?@Jimmy是的,这是因为

我试图用地理位置查询的结果填充两个字段。这是我写的第一个Java脚本之一

这是我目前的代码:


我哪里出错了?

这是因为您使用的是
input.html(…)
而不是
input.val(…)
input.html(…)
设置元素的
innerHTML
属性。然而,这不是设置输入元素值的方式。您想设置
属性/属性,因此使用
input.val(…)


谢谢你的帮助。它起作用了!不过我只有一个问题,每次我访问页面时,它似乎会自动填充字段,而不是等待我按下按钮。你能看到为什么会发生这种情况吗?@Jimmy是的,这是因为
$
函数在文档准备好后立即执行作为参数传递的函数。如果我删除$it doesnt函数。我只希望它在单击名为Get Coordinates的按钮时执行,这不尊重最佳实践,因为所有内容都是全局性的,但这只是一个示例,请看这里
$(function (getLocation) {

    var Geo = {};

    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(success, error);
    }

    //Get the latitude and the longitude;
    function success(position) {
        Geo.lat = position.coords.latitude;
        Geo.lng = position.coords.longitude;
        populateHeader(Geo.lat, Geo.lng);
    }

    function error() {
        console.log("Geocoder failed");
    }

    function populateHeader(lat, lng) {
        $('#lat').html(lat);
        $('#lng').html(lng);
    }

});
$('#lat').val(lat);
$('#lng').val(lng);