我想做这样的事情:限制复选框数量
但是有一点变化。我希望复选框也必须是连续的。
小例子:
如果我有 10 个复选框,并且我的限制是 3,那么用户只能检查第一个、第二个和第三个;或第三、第四、第五。不是第一,第三,第四。
编辑:连续复选框的修订代码。
$(function () {
var mLimit = 3;
$(':checkbox', 'div').click(function (e) {
var c = 0;
$(this)
.parent()
.find(':checkbox').each(function (i, el) {
if (el.checked) c++;
else c = 0;
if (c > mLimit) e.preventDefault();
});
});
});
演示:http: //jsfiddle.net/sa2Lg/2/
对于像下面这样的 HTML,
<div>
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
</div>
您可以限制使用以下脚本,
$(function () {
$(':checkbox', 'div').click(function (e) {
if ($(this).parent().find(':checked').length > 3) {
e.preventDefault();
}
});
});
演示:http: //jsfiddle.net/sa2Lg/
我懒得真正写出来给你,因为它让我很头疼,但它可以使用nextAll()
和prevAll()
函数来完成。
如果这样做$('input:checked').nextAll(':lt(2)');
,您将从选中的复选框中获得接下来的两个复选框。这就是您必须检查输入的方式。我相信您可以弄清楚所需的实际逻辑。