2012-03-05 4 views
3

Существует этот другой пост 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, но я не мог найти никаких разрешений.

Так что мой вопрос все еще стоит .. есть ли решение этой проблемы?

ответ

0

У меня была аналогичная проблема - входной сигнал телефона менялся после потери фокуса. Ну, я наткнулся на это: http://blog.it0091.com/2011/04/03/jquery-masked-input-prevent-field-blank-out-on-blur/

Это, безусловно, помогло мне, поэтому я надеюсь, что это вам тоже поможет. (Возможно, этот ответ должен был быть поставлен в ваш первоначальный вопрос?)