我的问题与使用类而不是名称值的 jQuery 验证非常相似 1 。我想验证一个复选框组,以便至少需要检查一个。默认情况下,两个复选框都被选中,但我想确保用户不会取消选中这两个复选框。复选框是
<div>
<input type="checkbox" class="channel" name="web" checked />
<label for="web" class="check">Web</label>
<input type="checkbox" class="channel" name="mobile" checked />
<label for="mobile" class="check">Mobile</label>
</div>
我的jquery是:
$("#searchForm").validate({
rules:{
...
...
...
}
});
$(".channel").rules("add", {
required: true,
minlength: 1
});
但是,这并没有达到预期的效果。如果我不选中任何一个框或仅选中第二个框(移动),则表单将不会提交,并且我会在第一个框上收到错误消息。我做错了什么?
最佳答案
我不确定我是否会使用 jQuery 验证来完成这样的事情,但如果您只是想确保任何组中至少有一个选中的复选框(无论是类或任何其他属性),您只需检查任何适当选择器的长度即可。
if ($('.channel:checked').length == 0) {
// validation fails
}
编辑
如果不使用验证,您可以通过执行以下操作来停止提交:
$('form').submit(function(e){
if ($('.channel:checked').length == 0) {
// validation fails, so stop submit
e.preventDefault();
}
});
关于使用类对复选框组进行 jQuery 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5408938/