Плагин проверки bassistance - несоответствие зависимостей

Я искал переполнение стека и не могу найти ответ на свой вопрос.

Я использую плагин проверки bquistance jquery, и он работает хорошо, за исключением одного конкретного раздела, пользовательских методов.

Методы работают, просто вызов $('selector'). Valid() говорит мне, что элемент недействителен, хотя он должен быть действительным.

Это связано с тем, что this.optional(элемент) возвращает "несоответствие зависимостей".

Мой вопрос:

Что означает несоответствие зависимостей при проверке необязательных элементов?

Означает ли зависимость то, что она необязательна, но имеет другие зависимости?

Так должен ли мой пользовательский метод проверить необязательное поле для "несоответствия зависимостей"??

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

мой пользовательский метод также должен возвращать несоответствие зависимостей? или мне с этим бороться??

Это мой пользовательский метод:

$.validator.addMethod(
        "ukphonenumber",
        function (value, element, validate) {

            if (validate) {
                var regexp = "\\s*\\(?((\\+0?44)?\\)?[ \\-]?(\\(0\\))|0)((20[7,8]{1}\\)?[ \-]?[1-9]{1}[0-9]{2}[ \\-]?[0-9]{4})|([1-8]{1}[0-9]{3}\\)?[ \\-]?[1-9]{1}[0-9]{2}[ \\-]?[0-9]{3}))\\s*";
                var re = new RegExp(regexp);
                return this.optional(element) || re.test(value);
            }
            else {
                return true;
            }
        },
        "Please check your input."
    );

И это добавление правила к моему входу:

$("#<%=txtTelephoneNumber.ID %>").rules("add", {
            required: false,
            ukphonenumber: true,
            messages: {
                required: "Please enter your telephone number",
                ukphonenumber: "Your telephone number is invalid"
            }
        });

2 ответа

Решение

Я также написал разработчику библиотеки по электронной почте и получил ответ: который решил проблему.

есть ли причина использовать required:false вместо обязательного:true? Если поле не является обязательным, оставьте обязательное правило вместо того, чтобы устанавливать его в false.

Вы также можете попытаться пропустить вызов this.optional(element) в вашем пользовательском методе.

С уважением, Йорн

Это работает:

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

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

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