如何使用JavaScript检查/不检查复选框?
当前回答
使用vanilla js:
//for one element:
document.querySelector('.myCheckBox').checked = true //will select the first matched element
document.querySelector('.myCheckBox').checked = false//will unselect the first matched element
//for multiple elements:
for (const checkbox of document.querySelectorAll('.myCheckBox')) {
//iterating over all matched elements
checkbox.checked = true //for selection
checkbox.checked = false //for unselection
}
其他回答
检查:
document.getElementById("id-of-checkbox").checked = true;
取消:
document.getElementById("id-of-checkbox").checked = false;
未被提及的重要行为:
以编程方式设置选中属性,不会触发复选框的更改事件。
你自己看看这把小提琴: http://jsfiddle.net/fjaeger/L9z9t04p/4/
(小提琴测试在Chrome 46, Firefox 41和IE 11)
click()方法
有一天,您可能会发现自己正在编写依赖于触发事件的代码。为了确保事件触发,调用checkbox元素的click()方法,如下所示:
document.getElementById('checkbox').click();
但是,这将切换复选框的选中状态,而不是专门将其设置为true或false。请记住,change事件只应该在选中的属性实际发生更改时触发。
它也适用于jQuery的方式:使用prop或attr设置属性,不触发更改事件。
设置检查到特定的值
您可以在调用click()方法之前测试选中的属性。例子:
function toggle(checked) {
var elm = document.getElementById('checkbox');
if (checked != elm.checked) {
elm.click();
}
}
点击这里阅读更多关于点击方法的信息: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click
function setCheckboxValue(checkbox,value) {
if (checkbox.checked!=value)
checkbox.click();
}
对于单个检查,请尝试
myCheckBox.checked = 1 <input type="checkbox" id="myCheckBox">给她打电话
对于多重尝试
document.querySelectorAll(“.imChecked”)。forEach (c = > c.checked = 1) 买酒:<input type="checkbox" class="imChecked"><br> 播放流畅的爵士音乐:<input type="checkbox"><br> 剃须:<input type="checkbox" class="imChecked"><br>
我们可以这样选中一个粒子复选框,
$('id of the checkbox')[0].checked = true
然后取消检查,
$('id of the checkbox')[0].checked = false