我想做这样的事情:Limit Checkbox amount
但稍有改变。我希望复选框也必须是连续的。
小例子:
如果我有10个复选框,并且我的限制是3,那么用户只能检查第一,第二和第三;或第三,第四,第五。不是第一,第三,第四。
答案 0 :(得分:0)
修改:修改了连续复选框的代码。
$(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();
});
});
});
DEMO: 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();
}
});
});
答案 1 :(得分:0)
我太懒了,不能真的为你写出来,因为它伤害了我的头脑,但可以使用nextAll()
和prevAll()
函数来完成。
如果你$('input:checked').nextAll(':lt(2)');
,你将从选中的复选框中获得接下来的两个复选框。这就是你必须检查输入的方式。我相信你可以找出所需的实际逻辑。