我試圖限制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