2012-03-05 5 views
3

Il ya cet autre poste StackOverflow à here qui est le problème EXACT que j'ai. Mais il n'y avait qu'une réponse et ce n'était pas si utile.jquery maskedinput supprimer le texte incomplet sur le bleu

Je suis donc reposant dans l'espoir que quelqu'un aura trouvé une solution à ce problème maintenant.

J'ai un formulaire avec un champ de numéro de téléphone OPTIONNEL avec le plugin jquery maskedInput et le plugin jquery validator appliqué.

Sans paramètres spéciaux, à chaque fois que je sélectionne le champ du numéro de téléphone après l'avoir mis à zéro (c'est facultatif), le validateur renvoie une erreur disant "entrer un numéro de téléphone valide". Mais le champ n'est pas requis. Donc, en fonction de this post here, j'ai essayé d'ajouter le code suivant à l'événement onfocusout du validateur.

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); 
      } 
     } 

Et dans un premier temps, cela semble le réparer. Si je saisis un numéro de téléphone valide, aucune erreur. Je n'entre aucun numéro de téléphone, aucune erreur. Mais si je saisis un numéro de téléphone invalide (seulement 9 caractères, par exemple), alors lorsque je clique sur la case du numéro de téléphone, mon numéro tapé est supprimé et aucune erreur ne s'affiche.

Y at-il une solution à ce problème? Après des tests supplémentaires, j'ai confirmé que c'était uniquement un problème avec l'entrée masquée. Si je supprime complètement la validation du champ Numéro de téléphone, puis saisissez un numéro de téléphone partiel dans la zone de texte du numéro de téléphone, puis l'onglet, le même comportement se produit (le nombre partiellement entré dans la zone de texte est supprimé). Un peu plus de googlings montre que c'est un problème connu avec jquery.maskedinput, mais je n'ai trouvé aucune résolution.

Alors ma question est toujours là. Y at-il une solution à ce problème?

Répondre

Questions connexes