我想将复选标记限制为一定数量,以使人们不会滥用类别选择。
这是我遇到的几个例子中的尝试。循环不起作用。我使用常规的手动样式复选框系统对其进行了测试,并且可以正常工作。尚未找到使用循环的示例。
<div id="checkbox">
<%= form.collection_check_boxes(:category_ids, Category.all, :id, :name, :multiple => true) %>
</div>
<script>
$('.checkbox :name').change(function () {
var $cs=$(this).closest('checkbox').find(':name:checked');
if ($cs.length > 3) {
this.checked=false;
}
});
</script>
我想将支票限制为5张。
关于如何设置JS以使其与循环配合使用的建议?
答案 0 :(得分:0)
可能很简单-是您的JS中缺少的#
吗?
$('.checkbox :name').change(function () {
var $cs=$(this).closest('#checkbox').find(':name:checked'); // << see change here
if ($cs.length > 3) {
this.checked=false;
}
});
否则,它将查找链中最接近的复选框元素,而不是ID为“复选框”的容器。
让我知道这是否有帮助:)
答案 1 :(得分:0)
如果超过了一定数量的未选中复选框,如何禁用其余未选中的复选框?
类似这样的东西:
$('#checkbox input:checkbox').change(function () {
var $cs=$('#checkbox input:checkbox:checked');
if ($cs.length > 3) {
$('#checkbox input:checkbox:not(:checked)').attr("disabled", true);
}
else{
$('#checkbox input:checkbox').attr("disabled", false);
}
});