javascript - 取消选中复选框后如何在文本框不消失的情况下清除文本框(JavaScript)

标签 javascript html checkbox textbox

我是 HTML、CSS 和 JavaScript 的新手,所以请多多包涵。

我正在尝试创建一个表单,其中包含一个元素,该元素使用地理定位在用户选中复选框时获取用户的当前位置,并将坐标输入我设置的文本框内。这工作正常,但是当我取消选中该复选框时,坐标与文本框一起消失。

如何只清除坐标而不使文本框也消失?

下面是我的代码:

function getLocation(myCheck) {

  var x = document.getElementById("place");

  if (myCheck.checked) {
    if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition(showPosition);
    } else {
      x.innerHTML = "Geolocation disabled or unavailable.";
    }

    function showPosition(position) {
      x.innerHTML = position.coords.latitude + ", " + position.coords.longitude;
    }
  } else {
    x.innerHTML = "";
  }
}
<h4> Coordinates: <label id="place"><input type="text"></label><label>Use current location? <input id="myCheck" onclick="getLocation(this)" type="checkbox"></label>
</h4>

最佳答案

要清空输入,您需要设置值而不是 innerHTML。另请注意,您可以避免在 label 标签内创建输入,只需使用 idfor 属性

function getLocation(myCheck) {

  var x = document.getElementById("place");

  if (myCheck.checked) {
    if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition(showPosition);
    } else {
      x.value = "Geolocation disabled or unavailable.";
    }
  } else {
    x.value = "";
  }
}


function showPosition(position) {
  x.innerHTML = position.coords.latitude + ", " + position.coords.longitude;
}
<h4> Coordinates: <label for="place">
<input id ="place" type="text"></label>
  <label for="myCheck">Use current location?
<input id="myCheck" onclick="getLocation(this)" type="checkbox">
</label>
</h4>

关于javascript - 取消选中复选框后如何在文本框不消失的情况下清除文本框(JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52053797/

相关文章:

javascript - CSS/JS 时钟 : Strange positioning behaviour in IE8

html - Bootstrap Navigation 移动版 - wordpress

jQuery Checkbox 有时只切换 div

c# - 如何使用 checkedit gridcontrol devexpress 选择行?

javascript - 使用带有 SOAP 信封的 Javascript 调用 Web 服务失败

javascript - jQuery 原型(prototype)中的 Object(0) 是什么?

javascript - 如何在 React JS 中创建一个类和另一个类扩展该类

javascript - 需要正则表达式帮助 : pattern almost works

javascript - 如何在js中将嵌套的html元素提取到同一级别

c# - 复选框和模型绑定(bind)的动态列表