我一直在尝试使用jQuery validate plugin的'group'选项来验证两个选择框,其中两个都是必需的,但只显示一条错误消息:
JavaScript的:
$('form').validate({
groups: {
cardExpiration: 'card_expirationMonth card_expirationYear'
},
rules: {
card_expirationMonth: 'required',
card_expirationYear: 'required'
},
errorPlacement: function (error, element) {
if (element[0].name === 'card_expirationMonth' || element[0].name === 'card_expirationYear') {
error.prependTo('form');
}
}
});
标记式:
<form method="post" action="/wherever">
<div class="-field field-expirationMonth">
<select name="card_expirationMonth" id="card_expirationMonth">
<option value="">MM</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="etc">Etc</option>
</select>
</div>
<div class="-field field-expirationYear">
<select name="card_expirationYear" id="card_expirationYear">
<option value="">YY</option>
<option value="2012">12</option>
<option value="2013">13</option>
<option value="2014">14</option>
<option value="2015">15</option>
<option value="etc">Etc</option>
</select>
</div>
</form>
这似乎是对错误消息进行分组,因此只有一个可见,但似乎采取的方法是只需要组中的一个字段......任何想法?
答案 0 :(得分:0)
http://docs.jquery.com/Plugins/Validation/validate#options上的演示显示了以下代码:
$("#myform").validate({
groups: {
username: "fname lname"
},
errorPlacement: function(error, element) {
if (element.attr("name") == "fname"
|| element.attr("name") == "lname" )
error.insertAfter("#lastname");
else
error.insertAfter(element);
},
debug:true
})
请注意&#39;规则&#39;缺席。如果你从代码中删除它,可能会形成一些东西。