Вот еще один пост StackOverflow на здесь , который является ТОЧНОЙ проблемой, с которой я столкнулся.Но был только один ответ, и он не был таким полезным.
Так что я делаю репост в надежде, что кто-то уже найдет решение этой проблемы.
У меня естьформа с дополнительным полем телефонного номера с подключаемым плагином jquery maskedInput и подключаемым плагином jquery validator.
Без специальных настроек, каждый раз, когда я выхожу из поля телефонного номера после его установки в ноль (этоопционально), валидатор выдает сообщение об ошибке «введите действительный номер телефона».Но поле не обязательно.
Итак, основываясь на этом посте здесь Я попытался добавить следующий код в событие onfocusout валидатора.
onfocusout: function (element)
{
if (!this.checkable(element) && (element.name in this.submitted || !this.optional(element)))
{
var currentObj = this;
var currentElement = element;
var delay = function () { currentObj.element(currentElement); };
setTimeout(delay, 0);
}
}
И вво-первых, это, кажется, исправить это.Если я введу действительный номер телефона, ошибок нет.Это я не ввожу ни номера телефона, ни ошибок.Но если я ввожу недопустимый номер телефона (например, только 9 символов), то когда я выхожу из поля номера телефона, мой введенный номер удаляется, и ошибка не отображается.
Есть лирешение этой проблемы?
************ ОБНОВЛЕНИЕ ************** После дальнейшего тестирования я подтвердил, что это исключительнопроблема с замаскированным вводом.Если я полностью удалю проверку из поля номера телефона, а затем введу частичный номер телефона в текстовое поле номера телефона, а затем выделю его, произойдет аналогичное поведение (частично введенный номер в текстовом поле будет удален).Еще один поиск в Google показывает, что это известная проблема с jquery.maskedinput, но я не смог найти никаких решений.
Итак, мой вопрос остается в силе ... есть ли решение этой проблемы?