如何使用JavaScript选中/取消选中复选框?
如何使用JavaScript选中/取消选中复选框?
Javascript:
// Check
document.getElementById("checkbox").checked = true;
// Uncheck
document.getElementById("checkbox").checked = false;
jQuery(1.6+):
// Check
$("#checkbox").prop("checked", true);
// Uncheck
$("#checkbox").prop("checked", false);
jQuery (1.5-):
// Check
$("#checkbox").attr("checked", true);
// Uncheck
$("#checkbox").attr("checked", false);
attr
还是 prop
? - Black.checked = true/false
不会触发 change
事件 :-\ - user1636522onclick="document.getElementById('dmsmh_chk').checked = !document.getElementById('dmsmh_chk').checked;"
,它的行为就像是在纯JS中使用jQuery的toggle方法。(当复选框未被选中时选中它,当复选框已被选中时取消选中) - Bim尚未提及的重要行为:
以编程方式设置checked属性不会触发复选框的change
事件。
在这个fiddle中自己看看:
http://jsfiddle.net/fjaeger/L9z9t04p/4/
(在Chrome 46、Firefox 41和IE 11中测试过)
click()
方法有一天,您可能会编写依赖于事件被触发的代码。为了确保事件触发,请调用复选框元素的click()
方法,像这样:
document.getElementById('checkbox').click();
然而,这会切换复选框的选中状态,而不是将其明确设置为true
或false
。请记住,只有当选中属性实际更改时,change
事件才应该触发。
同样适用于jQuery的方式:使用prop
或attr
设置属性,不会触发change
事件。
checked
设置为特定值在调用click()
方法之前,您可以测试checked
属性。例如:
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
elm.dispatchEvent(new Event('change'));
- Victor Sharovatov需要检查的事项:
document.getElementById("id-of-checkbox").checked = true;
取消选择:
document.getElementById("id-of-checkbox").checked = false;
我们可以将一个特定的复选框选中,
$('id of the checkbox')[0].checked = true
并通过取消勾选来实现。
$('id of the checkbox')[0].checked = false
试试这个:
//Check
document.getElementById('checkbox').setAttribute('checked', 'checked');
//UnCheck
document.getElementById('chk').removeAttribute('checked');
需要注意的是,将 'checked' 属性设置为非空字符串会导致复选框被选中。
因此,如果将 'checked' 属性设置为 "false",则该复选框将被选中。为了确保复选框未被选中,我必须将值设置为空字符串、null 或布尔值false。
使用纯JavaScript:
//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
}
function setCheckboxValue(checkbox,value) {
if (checkbox.checked!=value)
checkbox.click();
}
对于单个检查,尝试执行以下操作
myCheckBox.checked=1
<input type="checkbox" id="myCheckBox"> Call to her
多次尝试
document.querySelectorAll('.imChecked').forEach(c=> c.checked=1)
Buy wine: <input type="checkbox" class="imChecked"><br>
Play smooth-jazz music: <input type="checkbox"><br>
Shave: <input type="checkbox" class="imChecked"><br>
<script type="text/javascript">
$(document).ready(function () {
$('.selecctall').click(function (event) {
if (this.checked) {
$('.checkbox1').each(function () {
this.checked = true;
});
} else {
$('.checkbox1').each(function () {
this.checked = false;
});
}
});
});
</script>