jQuery validate - 两个必填字段,带有一条错误消息

时间:2012-04-09 17:10:17

标签: javascript jquery jquery-validate

我一直在尝试使用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>

这似乎是对错误消息进行分组,因此只有一个可见,但似乎采取的方法是只需要组中的一个字段......任何想法?

1 个答案:

答案 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;缺席。如果你从代码中删除它,可能会形成一些东西。