如何解决用于复选框集合的jQuery选择器
| 这是我最后一个问题的跟进。我有以下内容:<div class=\"abc\">
<input id=\"Response[0]\" name=\"Response[0]\" type=\"checkbox\" />
<input id=\"Response[1]\" name=\"Response[1]\" type=\"checkbox\" />
<input id=\"Response[2]\" name=\"Response[2]\" type=\"checkbox\" />
<input id=\"Response[3]\" name=\"Response[3]\" type=\"checkbox\" />
</div>
我从寂寞的一天听说,检查复选框集合的一种方法是:
$(\'.abc input\').change(function() {
if ($(\'.abc input:checked\').length) {
$(\'#doCheckMark\').prop(\'disabled\',false);
} else {
$(\'#doCheckMark\').prop(\'disabled\',true);
}
但似乎第二行可能有问题。我认为这是我的错,因为我更改了代码以添加div
和class
。
发生的事情是,当我调试该函数时,但后来我无法添加手表来检查.abc input:checked
的值。我想我做错了,因为对于变量名来说这看起来不正确。
有人可以帮忙吗?变量正确吗?
谢谢
解决方法
尝试:
$(\'.abc input\').change(function() {
if ($(this).is(\':checked\')) {
$(\'#doCheckMark\').prop(\'disabled\',false);
} else {
$(\'#doCheckMark\').prop(\'disabled\',true);
}
});
当您切换复选框值时,这将切换“ 6”禁用状态。当然,这会引起混乱,因为您在此范围内有很多复选框。如果要激活所有复选框,是否要切换禁用的语句?如果是这样,请尝试:
$(\'.abc input\').change(function() {
if ($(\'.abc input:checked\').length == 4) {
$(\'#doCheckMark\').prop(\'disabled\',true);
}
});
, 这是您需要的:
$(\'.abc input:checkbox\').change(function(){
if($(\'.abc input:checkbox:checked:first\').length){
$(\'#doCheckMark\').removeAttr(\'disabled\');
} else{
$(\'#doCheckMark\').attr(\'disabled\',\'disabled\');
}
}).trigger(\'change\');
你可以在这里测试
它将在组复选框上附加一个“ 9”事件,并在页面加载时触发一个“ 9”事件,因此默认情况下该按钮处于禁用状态。一旦用户选中/取消选中一个复选框,它将触发一个“ 9”事件,在这种情况下,它将检查是否选中了所有复选框。如果选中任何复选框,它将使按钮保持启用状态,否则将禁用该按钮。您需要在此处使用属性“ 12”,而不是属性“ 13”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。