我在使用jQuery Validator插件时遇到了一些困难。我有一个带有不同 name
属性的复选框列表,我似乎无法弄清楚如何确保其中至少有一个已经被检查过。我在Google上找到的所有内容似乎仅在name
属性相同时才有效。
以下是一些示例代码(已更新):
<ul id="email_lists">
<li>
<input name="checkbox1" type="checkbox" /> List 1
</li>
<li>
<input name="checkbox2" type="checkbox" /> List 2
</li>
<li>
<input name="checkbox3" type="checkbox" /> List 3
</li>
<li>
<input name="checkbox4" type="checkbox" /> List 4
</li>
</ul>
我想确保至少检查其中一个。不幸的是,我不能使名称与提交给第三方电子邮件营销应用程序的表单相同,并且期望这些复选框具有特定的name
属性。
更新
我知道如何使用普通的jQuery来做这件事,但我更喜欢使用jQuery Validator插件,因为这就是页面上所有其他验证的完成方式。
我可以通过说$('#email_lists li');
来使用jQuery对这些复选框进行分组,但我不确定如何使用类似的东西并告诉jQuery Validator插件将其用作组。
答案 0 :(得分:1)
假设你可以给复选框一个类名(jQuery需要某些东西来处理):
<input class="validationGroupOne" name="checkbox1" type="checkbox" />
<input class="validationGroupOne" name="checkbox2" type="checkbox" />
<input class="validationGroupOne" name="checkbox3" type="checkbox" />
<input class="validationGroupOne" name="checkbox4" type="checkbox" />
您应该可以插入.validationGroupOne
类选择器来代替通常的name
属性。
答案 1 :(得分:0)
这是我的解决方案: - )
使用:
<div id="list">
<input name="chkbox" type="checkbox" />
<input name="chkbox" type="checkbox" />
<input name="chkbox" type="checkbox" />
<input name="chkbox" type="checkbox" />
</div>
<input type="hidden" name="the_real_field_name" />
然后在jquery中验证插件块:
rules : {
chkbox: "required"
},
然后将值作为数组存储到单个隐藏字段中,如:
function updateInput() {
var allVals = [];
$('#list :checked').each(function() {
allVals.push($(this).val());
});
$('#the_real_field_name').val(allVals);
}
$(function() {
$('#list input').click(updateInput);
updateInput();
});