2012-03-29 67 views
0

下面的代碼可以工作,但對於DOB,它會在第一個文本框(DayOfBirth)而不是第三個(YearOfBirth)之後顯示錯誤消息。jQuery驗證 - 分組多個字段時,組字段無法正常工作

$("form").validate({ 
rules: { 
    DayOfBirth: { required: true }, 
    MonthOfBirth: { required: true }, 
    YearOfBirth: { required: true }, 
    SSN1: { required: true }, 
    SSN2: { required: true }, 
    SSN3: { required: true } 
}, 
groups: { 
    DateofBirth: "DayOfBirth MonthOfBirth YearOfBirth", 
    SSN: "SSN1 SSN2 SSN3" 
}, 
errorPlacement: function(error, element) { 
    if (element.attr("name") == "DayOfBirth" || element.attr("name") == "MonthOfBirth" || element.attr("name") == "YearOfBirth") 
    error.insertAfter("#YearOfBirth"); 
    else 
    error.insertAfter(element); 
if (element.attr("name") == "SSN1" || element.attr("name") == "SSN2" || element.attr("name") == "SSN3") 
    error.insertAfter("#SSN3Text"); 
    else 
    error.insertAfter(element); 
} 
}); 

回答

1

更改...

error.insertAfter("#YearOfBirth"); 

到...

form.find(".error").append(error); 

和YearOfBirth錯誤後就會顯示出來。

下一次,也許整個代碼與HTML或一個jsFiddle詮釋你的問題將有助於更清楚地解釋你的問題。

+0

不,現在甚至不驗證。我試過$(「#YearOfBirth」)。append(error);但它也是這樣做的。 – Ram 2012-03-30 16:27:46

+0

你可以請你在jsFiddle上發佈你的整個代碼,或將它添加到問題? – neo108 2012-03-30 21:46:20

+0

感謝您的幫助。我能夠自己修復它。 – Ram 2012-04-02 21:27:56