我想使用 jQuery 实现以下操作:选中一个 checkbox
:
$(".myCheckBox").checked(true);
或者$(".myCheckBox").selected(true);
有这样的东西吗?
我想使用 jQuery 实现以下操作:选中一个 checkbox
:
$(".myCheckBox").checked(true);
或者$(".myCheckBox").selected(true);
有这样的东西吗?
使用 .prop()
:
$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);
如果你只需要操作一个元素,你可以直接访问底层的HTMLInputElement
并修改它的.checked
属性:
$('.myCheckbox')[0].checked = true;
$('.myCheckbox')[0].checked = false;
使用.prop()
和.attr()
方法的好处是它们将作用于所有匹配的元素,而不是只作用于第一个匹配的元素。
.prop()
方法不可用,因此您需要使用.attr()
。
$('.myCheckbox').attr('checked', true);
$('.myCheckbox').attr('checked', false);
$('.myCheckbox').removeAttr('checked');
相比更可取,因为后者会在复选框最初被选中时更改调用包含它的任何表单上的.reset()
的行为 - 这是微妙但可能不受欢迎的行为更改。.prop()
文档的属性 vs. 属性部分中关于从1.5.x到1.6处理checked
属性/属性的不完整讨论。DOMElement.checked = true
的速度将始终最快。但由于只有一个元素,所以差异可以忽略不计。 - Tyler Crompton$(element).prop('checked')
确实很浪费时间。如果你已有 element
,就应该使用 element.checked
。 - gnarf用法:
$(".myCheckbox").attr('checked', true); // Deprecated
$(".myCheckbox").prop('checked', true);
如果你想要检查一个复选框是否被选中:
$('.myCheckbox').is(':checked');
这是使用jQuery检查和取消选中复选框的正确方式,它是跨平台标准,并且将允许表单重新提交。
$('.myCheckBox').each(function(){ this.checked = true; });
$('.myCheckBox').each(function(){ this.checked = false; });
(function( $ ) {
$.fn.checked = function(value) {
if(value === true || value === false) {
// Set the value of the checkbox
$(this).each(function(){ this.checked = value; });
}
else if(value === undefined || value === 'toggle') {
// Toggle the checkbox
$(this).each(function(){ this.checked = !this.checked; });
}
return this;
};
})( jQuery );
如果您不想使用插件,可以使用以下代码片段:
// Check
$(':checkbox').prop('checked', true);
// Un-check
$(':checkbox').prop('checked', false);
// Toggle
$(':checkbox').prop('checked', function (i, value) {
return !value;
});
removeAttr('checked')
而不是 attr('checked', false)
。 - Daniel X Moorechecked
属性,浏览器都不再响应更改。 - cwharris$('.myCheckBox').prop('checked', true)
这样设置后,它将自动应用于所有匹配的元素集(只适用于设置,获取仍然只返回第一个)。 - Daniel X Mooreprop
绝对是在元素上设置属性的适当方式。 - cwharris$('.myCheckbox').attr('checked',true) //Standards compliant
或者$("form #mycheckbox").attr('checked', true)
如果您在复选框的 onclick 事件中有自定义代码需要触发,请改用以下代码:
$("#mycheckbox").click();
您可以通过完全删除属性来取消选中:
$('.myCheckbox').removeAttr('checked')
你可以这样检查所有复选框: 您可以这样检查所有复选框:
$(".myCheckbox").each(function(){
$("#mycheckbox").click()
});
$(".myCheckbox").click()
。 - RobertPitt.attr
而不是 .prop
。 - Blazemonger$("#mycheckbox").click();
对我很有用,因为我同时监听了change事件,而.attr
和.prop
不会触发change事件。 - Damodar Bashyal你也可以通过扩展$.fn对象来添加新的方法:
(function($) {
$.fn.extend({
check : function() {
return this.filter(":radio, :checkbox").attr("checked", true);
},
uncheck : function() {
return this.filter(":radio, :checkbox").removeAttr("checked");
}
});
}(jQuery));
然后你可以直接做如下操作:
$(":checkbox").check();
$(":checkbox").uncheck();
或者你可能希望给它们更具唯一性的名称,例如mycheck()和myuncheck(),以防您使用其他使用这些名称的库。
.attr
而不是 .prop
。 - Blazemonger$("#mycheckbox")[0].checked = true;
$("#mycheckbox").attr('checked', true);
$("#mycheckbox").click();
最后一个会触发复选框的点击事件,其他的不会触发。 因此,如果您希望触发复选框的自定义onclick事件,请使用最后一个。
.attr
而不是 .prop
。 - Blazemongerclick
事件在Firefox和Edge浏览器中不太可靠。 - Vahid Amiri要选中一个复选框,您应该使用
$('.myCheckbox').attr('checked',true);
或者 $('.myCheckbox').attr('checked','checked');
取消选中复选框应该将其值设置为false:
$('.myCheckbox').attr('checked',false);
如果你这样做
$('.myCheckbox').removeAttr('checked')
它会完全删除该属性,因此您将无法重置表单。
错误的演示 jQuery 1.6。我认为这个有问题。对于1.6,我将在另一篇帖子中进行介绍。
新的可工作演示 jQuery 1.5.2 在Chrome中有效。
两个演示都使用了:
$('#tc').click(function() {
if ( $('#myCheckbox').attr('checked')) {
$('#myCheckbox').attr('checked', false);
} else {
$('#myCheckbox').attr('checked', 'checked');
}
});
$(".mycheckbox").prop("checked", true/false)
- gnarf这个选择器会选取具有特定属性的元素,且该属性值包含给定的子字符串 "ckbItem":
$('input[name *= ckbItem]').prop('checked', true);
它将选择所有名称属性中包含 ckbItem 的元素。
假设问题是如何通过值来检查一个复选框集合?
请记住,在典型的复选框集中,所有输入标签都具有相同的名称,它们通过属性value
不同:没有每个集合输入的ID。
Xian的答案可以使用以下代码行扩展为更具体的选择器:
$("input.myclass[name='myname'][value='the_value']").prop("checked", true);
我缺少解决方案。我总是使用:
if ($('#myCheckBox:checked').val() !== undefined)
{
//Checked
}
else
{
//Not checked
}
.val()
时,它将始终返回undefined
,以检测jQuery对象是否为空,而您可以简单地检查其.length
)。请参见https://dev59.com/WHNA5IYBdhLWcg3wmfAa,了解更易读的方法。 - Mark Amery
$("#mycheckbox").click();
。 - HumanInDisguise