使用jQuery验证插件验证多个选择框

使用jQuery验证插件验证多个选择框,jquery,jquery-validate,Jquery,Jquery Validate,因此,我在使用jQuery验证插件时遇到了一些问题。我有3个选择标签彼此相邻,因此用户可以输入他们的生日。如何为3个select标记生成1条验证消息?我听说也许可以做一个自定义规则 这是HTML,我包含了一个JSFIDLE <form id="commentForm" action="" method="post"> <p> <label for="month">Birthday:</label> <select name="

因此,我在使用jQuery验证插件时遇到了一些问题。我有3个选择标签彼此相邻,因此用户可以输入他们的生日。如何为3个select标记生成1条验证消息?我听说也许可以做一个自定义规则

这是HTML,我包含了一个JSFIDLE

<form id="commentForm" action="" method="post">
<p>
    <label for="month">Birthday:</label>
    <select name="month" class="required select">
        <option value="">Month</option>
        <option>Jan</option>
        <option>Feb</option>
    </select>
    <select name="day" class="required select">
        <option value="">Day</option>
        <option>01</option>
        <option>02</option>
    </select>
    <select name="year" class="required select">
        <option value="">Year</option>
        <option>1990</option>
        <option>1991</option>
    </select>
</p>
<input type="submit" value="Sign Up" class="button">
</form>​


生日:
月
简
二月
白天
01
02
年
1990
1991

这是目前正在发生的事情的一个例子


提前感谢。

您可以使用
选项将字段分组,以便为组显示一条错误消息。然后,您可以使用
errorPlacement
选项将该错误消息放置在所需位置:

$("#commentForm").validate({
    groups: {
        birthday: "month day year"
    },
    errorPlacement: function(error, element) {
        var name = element.prop("name");
        if (name === "month" || name === "day" || name === "year") {
            error.insertAfter("select[name='year']");
        } else {
            error.insertAfter(element);
        }
    }
});

示例:

+1,回答很好,您能设置一条自定义消息,如
这些字段是必填的吗?@Sheikheera:谢谢!是的,您将填充
消息
选项,您可以提供给
验证
。不过,您必须为组中的每个字段提供一条错误消息。非常感谢。它工作得很好!显然,从jsfiddle复制js会导致
语法错误:有时是非法字符。我花了很长时间才修好。我只是需要用手把整件东西都打出来。@Sean:很高兴能帮上忙!很抱歉关于非法字符的问题,这很烦人