jQuery:选中/取消选中复选框
我有两个div。Div A和Div B。Div A包含锚。单击其中一个锚时,它会显示我从Div B中的数组中获取的复选框列表。我有一个限制,用户只能从所有列表中选择三个复选框,通过单击锚来获取 如果禁用超过2个未选中的复选框,则我有一个限制jQuery:选中/取消选中复选框,jquery,checkbox,each,Jquery,Checkbox,Each,我有两个div。Div A和Div B。Div A包含锚。单击其中一个锚时,它会显示我从Div B中的数组中获取的复选框列表。我有一个限制,用户只能从所有列表中选择三个复选框,通过单击锚来获取 如果禁用超过2个未选中的复选框,则我有一个限制 if (countShownCats > -1 && countShownCats < 3) { // Enable checkboxes $('.rbSubcategoryList input:checkbo
if (countShownCats > -1 && countShownCats < 3) {
// Enable checkboxes
$('.rbSubcategoryList input:checkbox:not(:checked)').attr('disabled', false);
} else {
// Disable non checked checkboxes
$('.rbSubcategoryList input:checkbox:not(:checked)').attr('disabled', true);
}
但只有单击的第一个复选框被选中。我知道我必须以某种方式使用$。每个,但不知道如何使用
所以我的问题是,我如何使它工作,使所有选中的三个复选框保持选中,当我点击锚
谢谢大家! 好的,我想我现在拿到了 您没有在
.rbWwCatPicked
中循环浏览隐藏的输入,这就是为什么只选中了一个复选框
$('.rbWwCatPicked input[type=hidden]').each(function(){
$('.rbSubcategoryList input[value="' + $(this).data('pickedcat-hidden') + '"]').prop('checked', true);
});
和最新的小提琴:
对不起,我没有正确阅读问题 试试这个:
$('.rbSubcategoryList').click(function () {
var c = $(this).find('input:checkbox:checked').length;
if (c >= 2) {
$(this).find('input:checkbox:not(:checked)').prop('disabled', true);
} else {
$(this).find('input:checkbox:not(:checked)').prop('disabled', false);
}
});
这是小提琴:
您的JavaScript似乎也存在一些问题。检查浏览器控制台中记录的错误
如果我理解正确,您是在请求帮助使用
每种方法吗
试一试
由于某些原因,请共享JSFIDLE链接此函数$('.rbsubcategory列表输入:复选框').live('change',函数(){
在JSFIDLE中不起作用。这是将块添加到C分区的部分。以下链接:使用.on()
而不是.live()
,如.live()
对jquery的作用不超过1.6。live()
在网站上对我有效,。on()
在网站上不起作用,在jsfiddle上也不起作用:/您使用的jquery版本是什么?谢谢,这是一个很好的代码和平:)无论如何,这不是主要问题。请看一下我这里的链接。当你点击.rbsubcategory list
中的复选框时,它会在下面附加一个橙色块。因此,当我点击3个复选框时,所有未选中的复选框都被禁用。但当我点击第一个块中的锚定时,所有复选框都会再次被取消选中。它只会ecks第一个被单击的复选框。当我在第一个块中单击锚定时,我需要脚本来检查这三个复选框:)
$('.rbSubcategoryList').click(function () {
var c = $(this).find('input:checkbox:checked').length;
if (c >= 2) {
$(this).find('input:checkbox:not(:checked)').prop('disabled', true);
} else {
$(this).find('input:checkbox:not(:checked)').prop('disabled', false);
}
});
$('.rbSubcategoryList input[value="' + rbCheckboxValue + '"]').each(function () {
$(this).prop('checked', true);
});