Ale*_*tie 891
使用Javascript:
// Check
document.getElementById("checkbox").checked = true;
// Uncheck
document.getElementById("checkbox").checked = false;
Run Code Online (Sandbox Code Playgroud)
jQuery(1.6+):
// Check
$("#checkbox").prop("checked", true);
// Uncheck
$("#checkbox").prop("checked", false);
Run Code Online (Sandbox Code Playgroud)
jQuery(1.5-):
// Check
$("#checkbox").attr("checked", true);
// Uncheck
$("#checkbox").attr("checked", false);
Run Code Online (Sandbox Code Playgroud)
fra*_*ger 119
尚未提及的重要行为:
以编程方式设置checked属性,不会触发change
复选框的事件.
在这个小提琴中亲自看看:http:
//jsfiddle.net/fjaeger/L9z9t04p/4/
(小提琴在Chrome 46,Firefox 41和IE 11中测试过)
click()
方法有一天,你可能会发现自己正在编写代码,这依赖于被触发的事件.要确保事件触发,请调用click()
checkbox元素的方法,如下所示:
document.getElementById('checkbox').click();
Run Code Online (Sandbox Code Playgroud)
但是,这会切换复选框的已检查状态,而不是专门将其设置为true
或false
.请记住,change
只有在checked属性实际更改时才会触发事件.
它也适用于jQuery方式:使用prop
或设置属性attr
,不触发change
事件.
checked
为特定值您可以checked
在调用click()
方法之前测试该属性.例:
function toggle(checked) {
var elm = document.getElementById('checkbox');
if (checked != elm.checked) {
elm.click();
}
}
Run Code Online (Sandbox Code Playgroud)
点击此处了解有关点击方法的更多信息:https:
//developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click
top*_*erg 34
去检查:
document.getElementById("id-of-checkbox").checked = true;
Run Code Online (Sandbox Code Playgroud)
取消选中:
document.getElementById("id-of-checkbox").checked = false;
Run Code Online (Sandbox Code Playgroud)
vna*_*iuk 17
使用普通 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
}
Run Code Online (Sandbox Code Playgroud)
AKS*_*AKS 16
我们可以检查微粒复选框,
$('id of the checkbox')[0].checked = true
Run Code Online (Sandbox Code Playgroud)
并取消选中,
$('id of the checkbox')[0].checked = false
Run Code Online (Sandbox Code Playgroud)
Jan*_*orn 14
我想要注意的是,将'checked'属性设置为非空字符串会导致选中复选框.
因此,如果您将"已检查"属性设置为"false",则会选中该复选框.我必须将值设置为空字符串,null或布尔值false,以确保未选中复选框.
function setCheckboxValue(checkbox,value) {
if (checkbox.checked!=value)
checkbox.click();
}
Run Code Online (Sandbox Code Playgroud)
小智 8
试试这个:
//Check
document.getElementById('checkbox').setAttribute('checked', 'checked');
//UnCheck
document.getElementById('chk').removeAttribute('checked');
Run Code Online (Sandbox Code Playgroud)
对于单次检查尝试
myCheckBox.checked=1
Run Code Online (Sandbox Code Playgroud)
<input type="checkbox" id="myCheckBox"> Call to her
Run Code Online (Sandbox Code Playgroud)
多次尝试
document.querySelectorAll('.imChecked').forEach(c=> c.checked=1)
Run Code Online (Sandbox Code Playgroud)
Buy wine: <input type="checkbox" class="imChecked"><br>
Play smooth-jazz music: <input type="checkbox"><br>
Shave: <input type="checkbox" class="imChecked"><br>
Run Code Online (Sandbox Code Playgroud)
小智 5
<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>
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因,您不想(或不能).click()
在 checkbox 元素上运行 a,则可以直接通过其 .checked 属性( 的IDL 属性)直接更改其值<input type="checkbox">
。
请注意,这样做不会触发通常相关的事件(更改),因此您需要手动触发它才能获得可与任何相关事件处理程序一起使用的完整解决方案。
这是一个原始 javascript (ES6) 的功能示例:
class ButtonCheck {
constructor() {
let ourCheckBox = null;
this.ourCheckBox = document.querySelector('#checkboxID');
let checkBoxButton = null;
this.checkBoxButton = document.querySelector('#checkboxID+button[aria-label="checkboxID"]');
let checkEvent = new Event('change');
this.checkBoxButton.addEventListener('click', function() {
let checkBox = this.ourCheckBox;
//toggle the checkbox: invert its state!
checkBox.checked = !checkBox.checked;
//let other things know the checkbox changed
checkBox.dispatchEvent(checkEvent);
}.bind(this), true);
this.eventHandler = function(e) {
document.querySelector('.checkboxfeedback').insertAdjacentHTML('beforeend', '<br />Event occurred on checkbox! Type: ' + e.type + ' checkbox state now: ' + this.ourCheckBox.checked);
}
//demonstration: we will see change events regardless of whether the checkbox is clicked or the button
this.ourCheckBox.addEventListener('change', function(e) {
this.eventHandler(e);
}.bind(this), true);
//demonstration: if we bind a click handler only to the checkbox, we only see clicks from the checkbox
this.ourCheckBox.addEventListener('click', function(e) {
this.eventHandler(e);
}.bind(this), true);
}
}
var init = function() {
const checkIt = new ButtonCheck();
}
if (document.readyState != 'loading') {
init;
} else {
document.addEventListener('DOMContentLoaded', init);
}
Run Code Online (Sandbox Code Playgroud)
<input type="checkbox" id="checkboxID" />
<button aria-label="checkboxID">Change the checkbox!</button>
<div class="checkboxfeedback">No changes yet!</div>
Run Code Online (Sandbox Code Playgroud)
如果您运行它并单击复选框和按钮,您应该了解它是如何工作的。
请注意,我使用 document.querySelector 是为了简洁/简单,但这可以很容易地构建为将给定 ID 传递给构造函数,或者它可以应用于充当复选框的 aria-labels 的所有按钮(请注意,我没有费心在按钮上设置 id 并为复选框提供 aria-labelledby(如果使用此方法,则应该这样做)或任何其他方法来扩展它。最后两个addEventListener
只是为了演示它是如何工作的。
归档时间: |
|
查看次数: |
1034013 次 |
最近记录: |