проверка jQuery addMethod не работает

у меня есть div в jsp следующим образом:

 <input type="text" id="year" placeholder=" Year"  class="year"  name= "year" value=""/>

Я хочу, чтобы вычислить разницу между текущим годом и годом, указанным. Я должен показать ошибку, если значение не находится в некотором диапазоне. Это моя функция валидатора custome jquery.

jQuery.validator.addMethod('validAge', function (value, element, params) {
    alert("inside add method");
    var currentYear = (new Date).getFullYear();
    var range = currentYear - $element.val();;
    if(range >10 && range< 70) 
        {
        return  true;
        }
    return false;
}),

но он показывает ошибку в элементе.вал Я определил правило как

 $('#signup_form').validate({ // initialize the plugin

    rules: {
        year: {
            validage: true,
           },
    },
    messages: {
        year: "Invalid year",
   },
   },
  });

2 ответов


в jQuery addMethod element (элемент, подлежащий проверке) и value (текущее значение проверяемого элемента)

 jQuery.validator.addMethod("validAge", function (value, element, params) {
        alert("inside add method");
        var currentYear = (new Date).getFullYear();
        var range = currentYear - value;

       return this.optional(element) || (range >10 && range< 70) 

    },'Enter range in between 10 to 70');

удалите запятые там, где они не нужны, а также см. чувствительность к регистру.

var validator = $('#form').validate({
    rules: {
        year: {
            validAge: true
        }
    },
    messages: {
        year: "Invalid year"
    }
});

имя метода неправильно написано, проверьте "validage" вместо "validAge"