javascript - 取消选中另一个按钮上的选中复选框单击

标签 javascript jquery html checkbox

我希望在单击另一个按钮时取消选中选中的复选框:

下面是HTML

<input type="checkbox" name="checkb" id="Agent" value="Agent"> type=Agent
<br />

  <input type="checkbox" name="checkb" id="Customer" value="Customer"> type=Customer
<br />

  <input type="checkbox" name="checkb" id="Phone" value="Phone"> type=Phone
<br />

  <input type="checkbox" name="checkb" id="ID_Card" value="ID_Card"> type=ID_Card
<br />

<input type=datetime id="Start_Date" value="" placeholder="Start_Date" />
<input type=datetime id="End_Date" value="" placeholder="End_Date" />
<button id="date">
  Interval
</button>

点击间隔l按钮,如果任何复选框被选中,它们应该被取消选中。

下面是 Interval 按钮的事件监听器:

var check1 = document.getElementById("Agent");
var check2 = document.getElementById("Customer");
var check3 = document.getElementById("Phone");
var check4 = document.getElementById("ID_Card");

var newBtn = document.getElementById("date");
if (newBtn) {
  newBtn.addEventListener("click", function() {

    if (check1.checked) {
      var ischecked1 = check1.checked;

      check1.checked != ischecked1;
    }
    if (check2.checked) {
      var ischecked2 = check2.checked;

      check2.checked != ischecked2;

    }

    if (check3.checked) {
      var ischecked3 = check3.checked;

      check3.checked != ischecked3;
    }
    if (check4.checked) {
      var ischecked4 = check4.checked;

      check4.checked != ischecked4;

    }
  });
}

下面的代码运行没有任何错误,但如果选中这些框,则不会取消选中它们。

下面是fiddle

最佳答案

您的语句只是作为 bool 值求值,而不是执行赋值:

check1.checked != ischecked1; // this returns a boolean, doesn't do any assignment

你想这样做来切换选中状态:

check1.checked = !ischecked1;

其他复选框也是如此。

也不需要创建额外的变量,你可以直接进行切换和读取:

check1.checked = !check1.checked;

由于您只是在选中时切换复选框,因此您也可以直接将它们设置为 false

if (check1.checked) check1.checked = false;

除了使用 if 语句,您还可以使用数组迭代来进行切换:

[check1, check2, check3, check4].forEach(check => {
  if (check.checked) {
    check.checked = false;
  }
});

// or query the checkboxes directly and do the same
[...document.querySelectorAll('input[type="checkbox"]')].forEach(check => {
  if (check.checked) {
    check.checked = false;
  }
});

关于javascript - 取消选中另一个按钮上的选中复选框单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41493832/

相关文章:

javascript - Google Apps 脚本 - 检索用户名

javascript - AngularJS 模板内部指令。改变风格?

javascript - 如何在fabric js中保留图像的位置

javascript - <p> 仅显示最后分配的值

javascript - Chosen.js 引用选项值

javascript - 在 TypeScript 中导出类和类型的最佳方法

javascript - CKEditor插件,如何在单击创建的内容时重新打开对话框

jquery - 部分 View 点击事件不触发

jquery - 背景图像淡入淡出有效,但不是第一次触发

php - 在 PHP 中分解字符串