为什么jQuery验证会出现错误的消息?

为什么jQuery验证会出现错误的消息?,jquery,validation,Jquery,Validation,我将jQuery验证与两个自定义方法和一个标准的required:true方法一起使用来验证日期。一个自定义方法确保日期在将来,另一个方法在日期超出选定间隔时提供动态消息。例如,如果选择的时间间隔为7天,而选择的日期超过7天,则错误消息将提示用户选择该7天时间间隔内的日期 这些方法都能正常工作,但消息不能正确显示在中。如果我选择间隔之外的日期,将显示required:true消息。如果我选择了间隔内的一个日期来通过验证,那么再次选择间隔外的一个日期,它将显示正确的消息。我尝试重新排列规则,但其行

我将jQuery验证与两个自定义方法和一个标准的
required:true
方法一起使用来验证日期。一个自定义方法确保日期在将来,另一个方法在日期超出选定间隔时提供动态消息。例如,如果选择的时间间隔为7天,而选择的日期超过7天,则错误消息将提示用户选择该7天时间间隔内的日期

这些方法都能正常工作,但消息不能正确显示在中。如果我选择间隔之外的日期,将显示
required:true
消息。如果我选择了间隔内的一个日期来通过验证,那么再次选择间隔外的一个日期,它将显示正确的消息。我尝试重新排列规则,但其行为相同

是否有某种方法可以将规则级联到正确的消息中

$('form[name="returnapplyForm"]').validate({
 rules: {
   returnappfrmnextPayDate :{
     within_interval: true,
     dateForward:true,
     required: true
   }
},
messages: {
 returnappfrmnextPayDate : {
   required: "Please enter your next pay date."
 }
}
确保日期在指定间隔内的自定义方法。它是动态的

$.validator.addMethod('within_interval', function(value, element) {
        //foo
}, function() {return 'Your next Pay Date should be within ' + dateError + ' days from today.'});
以及日期转发验证程序:

$.validator.addMethod("dateForward", function(value, element) {
     // bar
}, "Please enter a valid date in the future.");

我不知道这个问题的答案,但是为什么不使用日期选择器,只允许选择范围内的日期呢?这看起来是这个应用程序的一个很好的解决方案,谢谢。当存在多个规则时,我有其他字段会给我带来相同类型的问题,我希望能够显示验证失败的正确原因。您能创建一个新的字段吗?