Jquery 如果组中的任何字段不是';无效

Jquery 如果组中的任何字段不是';无效,jquery,jquery-validate,Jquery,Jquery Validate,我使用jquery validate来验证表单,我得到了以下结果: $.validator.messages.required = ' *'; errorPlacement: function(error, element) { $( element ) .closest( "form" ) .find( "label[for='" + element.attr( "id" ) + "']" ) .append( error );

我使用jquery validate来验证表单,我得到了以下结果:

$.validator.messages.required = ' *';

errorPlacement: function(error, element) {
    $( element )
        .closest( "form" )
        .find( "label[for='" + element.attr( "id" ) + "']" )
        .append( error );
    },
errorElement: "span",
highlight: function (element, errorClass, validClass) {
   $(element.form).find("label[for=" + element.id + "]")
   .addClass("error");
},
unhighlight: function (element, errorClass, validClass) {
    $(element.form).find("label[for=" + element.id + "]")
    .removeClass("error");
},
它完美地用红色突出显示我的字段标签,并在它们旁边放一个*号。但是我有一个问题,当我有一组字段时,当前只有当第一个字段无效时,字段标签才会变为红色(显然,标签是针对该字段的)

谁能告诉我如何使该组字段中的任何项目的标签变为红色?那么,如果出生日期组中的月份或年份无效


EDIT:JsFiddle:

尽管不在规范中,但快速测试表明这种快速解决方法是有效的(无论如何,在Linux上的Chrome/Firefox中):

出生日期
问题是它正在更改输入的颜色和该输入的标签(基于ID attr)。您可能应该将标签包装在元素周围,并检查$(input).parents('label')是否存在,并假设它是一个字段组。您可以将类似的逻辑应用于图例/字段集对,并使标准人员感到高兴。(确定该字段是否属于字段集,并执行适当的操作。)


你能举一个标记的例子吗?如果你输入了错误的日期内容,它会以红色突出显示标签,但如果你在月份也这样做,它只会显示一个红色*。。。这是一个完美的解释。干杯,柯蒂斯。我发现了一个小问题,我想知道你是否知道解决办法?出于某种原因,如果我在没有填写任何出生日期字段的情况下单击“提交”,则错误范围在所有3个标签内,但是如果我正确填写了第一个字段,则第二个字段不正确,跨距跳出正确完成的跨距,并且*出现在下一行。我修改了errorPlacement代码以使用单独的规则。我认为这解决了你所指的问题:
<label for="dobday"><label for="dobmonth"><label for="dobyear">Date of Birth</label></label></label>