我试图限制checkboxes
及其相关的labels
可选的最大数量。复选框工作正常,但标签仍然可以选择超过限制。jQuery - 将标签和复选框的组限制为最大数
我的HTML input
形成这样的:
<div data-toggle="buttons" class="btn-group bizmoduleselect">
<label id="b-<?php echo $term->term_id; ?>" class="btn btn-default <?php echo $labelchk ?>">
<div class="bizcontent">
<input id="youaresure" type="checkbox" name="email_cats[]" <?php echo $chk ?> value="<?php echo $term->term_id ?>" />
<h5><?php echo $term->name ?></h5>
</div>
</label>
</div>
和我的jQuery的限制复选框和标签是这样的:
var $checkboxes = $('input[id="youaresure"]');
var $parent = $checkboxes.parent('label');
var max = 5;
$checkboxes.show();
$checkboxes.change(function() {
$(this).prop('checked', function() {
if ($(this).is(':checked')) {
return ($checkboxes.filter(':checked').length <= max) ? true : false;
}
});
});
$parent.show();
$parent.change(function() {
$(this).prop('class', function() {
if ($(this).is('active')) {
return ($parent.filter('active').length <= max) ? true : false;
}
}
基本上,PHP插入一个active
类labels
父母inputs:checked
和我应该防止labels
和inputs
被选中如果超过5。 对于复选框是好的,但父标签仍然可选,基本上是可见的。
编辑:我已经忘记表明它可以与bootstrap一起工作,并且每个复选框都像一个按钮一样威胁着!
PLZ添加完整的代码的jsfiddle –
标签没有改变事件。因此,您可以使用标签点击事件或在复选框更改事件上执行所有操作。 – Gatsbill
不能在页面中重复Id,它们根据定义是唯一的 – charlietfl