Несоответствие зависимостей с плагином 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 для наших нужд.
Необязательно означает, что пользователь не должен вводить какие-либо данные. Если нет ввода, его не нужно проверять.