如何使用JavaScript检查/不检查复选框?
当前回答
我同意目前的答案,但在我的情况下,它不起作用,我希望这段代码在未来能帮助到某人:
// check
$('#checkbox_id').click()
其他回答
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);
未被提及的重要行为:
以编程方式设置选中属性,不会触发复选框的更改事件。
你自己看看这把小提琴: 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
使用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
}
<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>
function setCheckboxValue(checkbox,value) {
if (checkbox.checked!=value)
checkbox.click();
}
推荐文章
- 如何删除和清除所有的本地存储数据
- 如何从给定的html字符串中删除前导和尾随空白?
- 如何为KnockoutJS调试模板绑定错误?
- 将一个二进制的NodeJS Buffer转换为JavaScript的ArrayBuffer
- 检测浏览器标签是否有焦点
- JavaScript在数组中
- 如何从JavaScript中使用正则表达式的字符串中剥离所有标点符号?
- 如何修改标签文本?
- 如何获得十六进制颜色值而不是RGB值?
- 字符串strip() JavaScript?
- 如何将一个标题转换为jQuery的URL段塞?
- 获取对象的第一个索引
- 我如何用javascript编程点击链接?
- JavaScript:客户端验证与服务器端验证
- React钩子:从回调中访问最新状态