设置“检查”的复选框与jQuery?
我想要做这样的事情来使用jQuery勾选checkbox
:
$(".myCheckBox").checked(true);
要么
$(".myCheckBox").selected(true);
这样的事情存在吗?
jQuery 1.6+
使用新的.prop()
方法:
$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);
jQuery 1.5.x及以下版本
.prop()
方法不可用,所以您需要使用.attr()
。
$('.myCheckbox').attr('checked', true);
$('.myCheckbox').attr('checked', false);
请注意,这是jQuery在1.6版之前的单元测试中使用的方法,并且比使用更适合
$('.myCheckbox').removeAttr('checked');
因为后者会在初始检查盒子时改变对包含它的任何形式的.reset()
调用的行为 - 这是一种微妙但可能不受欢迎的行为改变。
有关更多上下文,可以在版本1.6发行说明和.prop()
的属性与属性部分中找到对从1.5.x到1.6的转换中对已checked
属性/属性进行处理更改的不完整讨论。文档。
任何版本的jQuery
如果您只使用一个元素,则始终可以修改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标准来检查和取消选中复选框,因此任何正确实现复选框元素的“checked”属性的浏览器都可以完美地运行此代码。 这应该是所有主流浏览器,但我无法测试Internet Explorer 9之前的版本。
问题 (jQuery 1.6):
一旦用户点击复选框,该复选框会停止响应“已检查”属性更改。
这是复选框属性在某人点击复选框后失败的示例(这发生在Chrome中)。
小提琴
解决方案:
通过在DOM元素上使用JavaScript的“checked”属性,我们可以直接解决问题,而不是试图操纵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;
});
链接地址: http://www.djcxy.com/p/197.html