使用javascript切换复选框

时间:2019-03-06 21:52:02

标签: javascript checkbox

我想取消使用JavaScript的复选框。我有一个按钮,只需取消选中该框即可正常工作:

function clear() {
document.getElementById("check").checked = "";
}

我还有另一个按钮,如果未选中,我想选中该框,然后取消选中它。下面不会取消选中该框。我可以切换if语句,其工作方式却相反。有什么问题吗?

function switchIt() {
if (document.getElementById("check").checked !== "checked") {
  document.getElementById("check").checked = "checked";
} else {
  document.getElementById("check").checked = "";
}

谢谢!

4 个答案:

答案 0 :(得分:2)

switchreserved word,请使用另一个

function switchIt() {
  var box = document.getElementById("check");
  
  if (box.checked) {
    box.checked = false;
  } else {
    box.checked = true;
  }
}

setInterval(switchIt, 1000);
<input type="checkbox" id="check" />

答案 1 :(得分:1)

将“ checked”视为布尔值,而不是字符串。

您可以像

那样将其反转
element = document.getElementById("check")
element.checked = !element.checked

一个更具特色的示例:

var $toggle = document.getElementById('toggle');
var $checkbox = document.getElementById('checkbox');



var toggle_checkbox = function() {
   $checkbox.checked = !checkbox.checked;
}

$toggle.addEventListener('click',toggle_checkbox);
<label>
  Checkbox:
  <input id="checkbox" type="checkbox" checked />
</label>
<button id="toggle">Toggle</button>

答案 2 :(得分:1)

您需要一个布尔值来做到这一点。

看看这支笔:

https://codepen.io/anon/pen/jJyXgO

let checkbox = document.querySelectorAll('#check')[0]

setInterval(function() {
  checkbox.checked = !checkbox.checked
}, 1000)

答案 3 :(得分:0)

我以前从未见过使用“ checked”字符串完成此操作。尝试使用以下布尔值:

function change() {
    if (document.getElementById("check").checked !== true) {
      document.getElementById("check").checked = true;
    } else {
      document.getElementById("check").checked = false;
    }
}

或更简单

function change() {
    document.getElementById("check").checked = !document.getElementById("check").checked
}

别忘了,开关已保留,因此请使用其他名称,就像我对change()所做的