javascript - 使用 javascript、.innerHTML 更改输入的值

标签 javascript html dom

我正在尝试获取用户位置,然后插入到两个单独的 <input> 中领域。该脚本在尝试打印到 <p id="lat"></p> 时有效.但不适用于 <input> .

<form>
    <input type="number" step="any" name="lat" id="lat" value="" />
    <input type="number" step="any" name="lng" id="lng" value="" />
</form>

<button onclick="getLocation()">Get current location</button>

<script>
    var x = document.getElementById("lat").value;
    var y = document.getElementById("lng").value;
    function getLocation() {
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(showPosition);
        } else {
            x.innerHTML = "Geolocation is not supported by this browser.";
        }
    }
    function showPosition(position) {
        x.innerHTML = position.coords.latitude;
        y.innerHTML = position.coords.longitude;
    }
</script>

我在这里错过了什么?已添加.value到可验证的结尾,我想知道它是否是 data输入和/或 step值(value)观?

最佳答案

x 没有 innerHTML 因为 x 等于 #lng 中保存的字符串值> 元素。它不等于元素本身。

与其将 xy 设置为每个元素的 value,不如将它们设置为您的元素本身:

var x = document.getElementById("lat");
var y = document.getElementById("lng");

然后您可以使用 x.valuey.value (x.innerHTMLy.innerHTML):

x.value = "Geolocation is not supported by this browser.";

和:

function showPosition(position) {
    x.value = position.coords.latitude;
    y.value = position.coords.longitude;
}

关于javascript - 使用 javascript、.innerHTML 更改输入的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28048407/

相关文章:

javascript - 如何在 jQuery 中获取 parent 的特定下一个和 previous sibling 姐妹的 child ?

html - 在 HTML 和 CSS 中使用多个 'id' 和 'class' 属性的区别

javascript - 针对所有类(class),只选择点击的元素

javascript - 我真的需要 Babel 或其他转译器才能将 ES6 与 React 结合使用吗?

javascript - AngularJS,多个可拖动项目在初始移动时导致 'jump'

javascript - 使悬停菜单停留足够长的时间来点击

html - 创建一个向上打开的下拉菜单

javascript - 在一条路线上加载多个模板/ Controller

javascript - 当我单击“'"更多”按钮时如何将 div 高度属性更改为自动

javascript - Chrome 新标签保留内存