我有几组复选框(每个都有几个复选框),我需要使用jQuery(或普通的旧javascript)来确保表单不能提交,除非每个复选框组中至少有一个复选框被选中。我怎样才能做到这一点?如果A组没有至少一个,我想抛出一个错误,指定“请至少从A组中选择一个”等。谢谢!确保至少有一个复选框被勾选了多组复选框?
0
A
回答
2
您可以通过定义一个CSS类来对每个复选框元素集进行“分组”,然后处理每个组,以查看是否至少检查了一个元素并相应地提醒用户。
一些示例标记可能类似于以下内容:
<form>
<pre>Group A</pre>
<input class='group-a' data-name='Group A' type='checkbox' value='1' /> 1
<input class='group-a' data-name='Group A' type='checkbox' value='2' /> 2
<pre>Group B</pre>
<input class='group-b' data-name='Group B' type='checkbox' value='1' /> 1
<input class='group-b' data-name='Group B' type='checkbox' value='2' /> 2
<pre>Group C</pre>
<input class='group-c' data-name='Group C' type='checkbox' value='1' /> 1
<input class='group-c' data-name='Group C' type='checkbox' value='2' /> 2
<hr />
<input type='submit' />
</form>
随着jQuery的以下位将处理您的实际逻辑:
<script>
$(function(){
$('form').submit(function(e){
// Store each group that has been processed
var checkedGroups = [];
// Check each group
$(':checkbox[class^="group-"]').each(function(){
// Store a reference to the current class
var currentGroup = $(this).attr('class');
// If the current group hasn't been checked, check it
if($.inArray(currentGroup,checkedGroups) == -1){
var atLeastOneChecked = $(':checkbox.' + currentGroup + ':checked').length > 0;
// If at least one isn't checked, alert the user
if(!atLeastOneChecked){
// Alert the user and stop everything going forward
alert("Please ensure that at least one option from " + $(this).data('name') + " is checked.");
e.preventDefault();
return false;
}
// If we have made it this far, then this group has been checked
checkedGroups.push(currentGroup);
}
});
});
});
</script>
你不一定必须使用CSS类来处理选择。你可以很容易地使用data-*
属性来处理这个属性,所以它只是取决于你的个人喜好。
相关问题
- 1. 如何确保至少有一个复选框被选中?
- 2. 确保至少有一个复选框被选中
- 3. 确保至少有一个复选框被选中php
- 4. 确保至少有1个复选框被选中
- 5. 确保在Flex 3中至少选择了一个复选框
- 6. 确保在角度中至少选择了一个复选框
- 7. 流星复选框组 - 至少选中一个复选框
- 8. UncheckAll /勾选复选框时,另一个复选框被选中
- 9. 检查PHP中是否至少勾选了1个复选框
- 10. 在复选框组中至少选择1个复选框组
- 11. 复选框 - 选中至少一个框已被选中
- 12. 有多个复选框勾选VB6?
- 13. 每组至少有1个复选框?
- 14. 选择至少一个复选框AngularJS
- 15. 勾选复选框
- 16. jquery - 检查是否至少有一个复选框被选中
- 17. JQuery - 至少有一个复选框被选中
- 18. 检查是否至少有一个复选框被选中
- 19. 请确保在GridView中至少选中了一个记录复选框
- 20. 表单验证 - 确保至少选中1个复选框
- 21. JavaScript检查复选框时,输入框被勾选 - 复选框数组[]
- 22. 勾选复选框被点击?
- 23. TimePicker如果复选框被勾选
- 24. 默认勾选一个复选框html
- 25. 两个或多个复选框之间没有未勾选的复选框
- 26. 如何检查至少一个复选框被选中?
- 27. jQuery验证至少一个复选框被选中
- 28. 检查是否至少选择了一个复选框
- 29. 检查PHP中是否至少选中了一个复选框
- 30. 复选框验证 - 验证至少选择了一个
给同一组中的所有复选框选择相同的类。然后你可以使用'$(“:checkbox.groupClass:checked”).length'来获得该组中check复选框的数量。循环遍历所有类,如果其中任何一个为“0”,则验证失败。 – Barmar