我想做这样的事情来打勾 checkbox
运用 jQuery的:
$(".myCheckBox").checked(true);
要么
$(".myCheckBox").selected(true);
这样的事情存在吗?
我想做这样的事情来打勾 checkbox
运用 jQuery的:
$(".myCheckBox").checked(true);
要么
$(".myCheckBox").selected(true);
这样的事情存在吗?
使用新的 .prop()
方法:
$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);
该 .prop()
方法不可用,所以你需要使用 .attr()
。
$('.myCheckbox').attr('checked', true);
$('.myCheckbox').attr('checked', false);
请注意,这是 jQuery在1.6版之前的单元测试所使用的方法 并且优选使用
$('.myCheckbox').removeAttr('checked');
因为后者将,如果最初检查该框,则将呼叫的行为更改为 .reset()
在任何包含它的形式 - 一个微妙但可能不受欢迎的行为改变。
对于更多的上下文,一些不完整的讨论的变化处理 checked
在1.5.x到1.6的过渡中的属性/属性可以在 版本1.6发行说明 和 属性与属性 部分 .prop()
文件。
如果您只使用一个元素,则可以随时修改 HTMLInputElement
的 .checked
属性:
$('.myCheckbox')[0].checked = true;
$('.myCheckbox')[0].checked = false;
使用的好处 .prop()
和 .attr()
方法而不是它们将对所有匹配的元素进行操作。
使用:
$(".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; });
通过这样做,您使用JavaScript标准来检查和取消选中复选框,因此任何正确实现checkbox元素的“checked”属性的浏览器都将完美地运行此代码。这个 应该 是所有主流浏览器,但我无法测试以前的Internet Explorer 9。
问题 (jQuery 1.6):
用户单击复选框后,该复选框将停止响应“已检查”属性更改。
下面是一个复选框属性的示例,该属性在某人拥有后无法完成工作 点击 复选框(这在Chrome中发生)。
解决方案:
通过使用JavaScript的“已检查”属性 DOM 我们能够直接解决问题,而不是试图操纵DOM来做我们的事情 想 它要做。
此插件将更改jQuery选择的任何元素的checked属性,并在所有情况下成功检查和取消选中复选框。因此,虽然这看起来像是一个过度承载的解决方案,但它会使您网站的用户体验更好,并有助于防止用户受挫。
(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;
});
你可以做
$('.myCheckbox').attr('checked',true) //Standards compliant
要么
$("form #mycheckbox").attr('checked', true)
如果您要在触发的复选框的onclick事件中有自定义代码,请使用以下代码:
$("#mycheckbox").click();
您可以通过完全删除属性取消选中:
$('.myCheckbox').removeAttr('checked')
您可以选中所有复选框,如下所示:
$(".myCheckbox").each(function(){
$("#mycheckbox").click()
});
您还可以使用新方法扩展$ .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()。
$("#mycheckbox")[0].checked = true;
$("#mycheckbox").attr('checked', true);
$("#mycheckbox").click();
最后一个将触发复选框的click事件,其他人不会。 因此,如果您要触发的复选框的onclick事件中有自定义代码,请使用最后一个。
要选中您应该使用的复选框
$('.myCheckbox').attr('checked',true);
要么
$('.myCheckbox').attr('checked','checked');
要取消选中复选框,您应始终将其设置为false:
$('.myCheckbox').attr('checked',false);
如果你这样做
$('.myCheckbox').removeAttr('checked')
它会一起删除属性,因此您将无法重置表单。
BAD DEMO 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');
}
});
假设问题是......
请记住,在典型的复选框集中,所有输入标记都具有相同的名称, 它们因属性而不同 value
:该集的每个输入都没有ID。
西安的答案可以延伸到一个 更具体的选择器,使用以下代码行:
$("input.myclass[name='myname'][value='the_value']").prop("checked", true);
我错过了解决方案。我将永远使用:
if ($('#myCheckBox:checked').val() !== undefined)
{
//Checked
}
else
{
//Not checked
}
这将选择具有指定属性的元素,其值包含给定的子字符串“ckbItem”:
$('input[name *= ckbItem]').prop('checked', true);
它将在其name属性中选择包含ckbItem的所有元素。
使用选中复选框 jQuery 1.6 或更高只是这样做:
checkbox.prop('checked', true);
要取消选中,请使用:
checkbox.prop('checked', false);
以下是我喜欢使用jQuery切换复选框的内容:
checkbox.prop('checked', !checkbox.prop('checked'));
如果你正在使用 jQuery 1.5 或更低:
checkbox.attr('checked', true);
要取消选中,请使用:
checkbox.attr('checked', false);