Существует этот другой пост StackOverflow в here, который является ТОЧНОЙ проблемой, которую я испытываю. Но был только один ответ, и это было не так полезно.jquery maskedinput удаление неполного текста на синем
Так что я пересказываю в надежде, что кто-то найдет решение этой проблемы к настоящему времени.
У меня есть форма с полем ОПЦИОНАЛЬНОГО номера телефона с плагином jquery maskedInput и плагином для проверки правильности jquery.
При отсутствии специальных настроек каждый раз, когда я выхожу из поля номера телефона после установки его в ничто (это необязательно), валидатор возвращает ошибку, говоря «введите действительный номер телефона». Но поле не требуется.
Итак, на основе this post here Я попытался добавить следующий код к событию 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), то, когда я выхожу из окна номера телефона, мой введенный номер удаляется и ошибка не отображается.
Есть ли решение этой проблемы?
************ ОБНОВЛЕНИЕ ************** После дополнительного тестирования я подтвердил, что это единственная проблема с maskedinput. Если я полностью удалю проверку из поля номера телефона, а затем введите частичный номер телефона в текстовом поле номера телефона, а затем выйдите из него, произойдет такое же поведение (частично введенный номер в текстовом поле удаляется). Еще несколько поисковых запросов показывают, что это известная проблема с jquery.maskedinput, но я не мог найти никаких разрешений.
Так что мой вопрос все еще стоит .. есть ли решение этой проблемы?