javascript 通过单击标签来检查复选框时确认

标签 javascript checkbox

我的表单上有一个复选框会执行危险操作。因此,我想确保用户在选中此项目时确实确定,但如果他们取消选中该复选框,我不想警告他们。

我的问题是,如果他们单击实际的复选框来取消选中它,而不是标签的文本,则效果很好。

http://jsfiddle.net/j2ppzpdk/

function askApply() {
  if (document.getElementById("apply").checked) {
    var answer = confirm("Are you sure about that?");
    if (!answer) {
      document.getElementById("apply").checked = false;
    }
  }
}
<form>
  <label onclick="askApply();">
    <input type="checkbox" name="apply" id="apply" value="1" />&nbsp; Apply
  </label>
</form>

最佳答案

一些注意事项:

  • 最好将事件监听器添加到发生更改的元素(复选框),而不是其标签。
  • 更好地监听change事件而不是click。例如,可以使用键盘更改复选框。
  • 最好避免内联事件监听器。您可以改用 addEventListener

document.getElementById('apply').addEventListener('change', function() {
  if(this.checked) {
    var answer = confirm("Are you sure about that?");
    if (!answer) {
      document.getElementById("apply").checked = false;
    }
  }
});
<form>
  <label>
    <input type="checkbox" name="apply" id="apply" value="1" />
    &nbsp; Apply
  </label>
</form>

关于javascript 通过单击标签来检查复选框时确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27464520/

相关文章:

javascript - jQuery 时间 自从使用 HTML5 时间标签

checkbox - typescript 如何判断该元素是复选框,所以 element.checked 不是红色下划线

javascript if 复选框的条件仅运行一次

ajax - 使用 AJAX 动态更改复选框状态时出现问题

javascript - 整页水平滚动问题

Javascript (ECMA-6) 类魔术方法 __call 像 PHP

html - 表格单元格 : checkbox is too small 中的复选框

javascript - 具有多种类型复选框的数据表

javascript - MongoDB + Node.js : How to use a Schema from an external file for another Schema?

javascript - 如何从外部URL获取JSON数据