只是想限制复选框的数量,但实际上我的代码在lengh>时禁用所有复选框。 3,什么是错的..
$('.limit :checkbox').change(function () {
var $cs=$(this).closest('.limit').find(':checkbox:checked');
if ($cs.length > 3) {
this.checked=false;$('.limit :checkbox').removeAttr('checked').button( "refresh" );
}
});
问候 杰斯
答案 0 :(得分:2)
只需删除removeAttr('checked')
$(function() {
$(".limit").buttonset();
$('.limit :checkbox').change(function () {
var $cs=$(this).closest('.limit').find(':checkbox:checked');
if ($cs.length > 3) {
this.checked=false;
$('.limit :checkbox').button( "refresh" );
}
});
});
答案 1 :(得分:0)
$('.limit :checkbox').removeAttr('checked')
错了。它将取消选中您的所有复选框。
也许你的意思是$(this).removeAttr('checked')
(但你已经有this.checked=false
)?
答案 2 :(得分:0)
答案 3 :(得分:0)
尝试这种方式:
$(function () {
$(".limit").buttonset();
var max = 3;
var checkboxes = $('input[type="checkbox"]', '.limit');
checkboxes.change(function () {
var current = checkboxes.filter(':checked').length;
checkboxes.filter(':not(:checked)').prop('disabled', current >= max).button('refresh');
});
});