Несоответствие зависимостей с плагином Jquery Validate

Я довольно новичок в Jquery, я использую правило проверки для моего текстового поля. Проблема в том, что когда я отмечаю текстовое поле обязательно, пользователь не вводит никакого значения, тогда он не показывает никакого сообщения проверки. Я связал еще одно сообщение проверки для текстового поля, в котором значение должно находиться в диапазоне и которое работает, когда пользователь вводит какие-либо данные.

$.validator.addMethod("requiredRangeFunction", function(value, element) {debugger
            $.validator.messages["requiredRangeFunction"] = 
    jQuery.format(
      $(element).attr('ErrorMessage') ? $(element).attr('ErrorMessage') : "Please enter the value between {0} and {1}",
      $(element).attr('MinValue'), 
      $(element).attr('MaxValue')
     );

    return  this.optional(element) || ((value > Number($(element).attr('MinValue')) && (value < Number($(element).attr('MaxValue')))));
}, "Please enter valid value.");

проблема связана с this.optional(element), который возвращает несоответствие зависимостей, когда пользователь не предоставляет никаких входных данных.

моё текстовое поле тоже может быть необязательным, поэтому мне нужно вызвать this.optional(element)

4 ответа

Решение

Тестирование на (this.optional(element) == true) сработало для меня.

Так что в вашем случае это будет:

return  (this.optional(element) == true) || ((value > Number($(element).attr('MinValue')) && (value < Number($(element).attr('MaxValue')))));

(Напротив решения Нава)

return (this.optional(element) != false) || test;

это работает точно.

Вы можете заменить

return this.optional(element) || <test condition>

от

var r = $(element).rules();
var req=(this.objectLength(r))?r.required:false;
return !req || <test condition>;

Может быть, это будет

var req=r.required; // true, false or undefined.

Предположим, что undefined - это то же самое, что и false для наших нужд.

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

Другие вопросы по тегам