2012-01-05 3 views
5

Je suis confus quant à ce qui se passe ici ... il devrait être basique, mais je n'arrive pas à le comprendre.jquery trigger flou ne fonctionne pas tout à fait raison?

Je prépare un formulaire avec des informations qui doivent être vérifiées par rapport à la base de données. Lorsque le formulaire se charge, je veux javascript pour exécuter les événements "flou" pour les deux zones de saisie que je dois vérifier par rapport.

Voici ce qui se passe. Lorsque le formulaire charge correctement toutes les données, l'événement de déclenchement ("flou") des entrées "nom d'utilisateur" et "courrier électronique" ne se déclenche pas. Toutefois, si je place manuellement le curseur dans chacune des entrées et que j'appuie sur la touche de tabulation ou que je clique en dehors de la boîte, l'événement "flou" se déclenche.

Je dois aussi déclencher quand la page se charge pour avertir l'utilisateur si les données pré-remplies sont en conflit avec les données existantes ... une idée de ce que je fais mal ou comment faire pour que cela fonctionne?

Merci d'avance.

<script type="text/javascript"> 
    $(document).ready(function(){ 
     //Username 
     $("#username").blur(function(){ 
      $("#usr_available_msg").html("Checking").addClass("error_msg ui-state-error"); 
     }); 

     //email 
     $("#email").blur(function(){ 
      $("#email_available_msg").html("Checking").addClass("error_msg"); 
     }); 

     //Run validation check on page load 
     $("#username").trigger("blur"); 
     $("#email").trigger("blur"); 
    }); 
</script> 
+1

Je mets ce dans un jsfiddle et la méthode de flou se déclenche au chargement de la page comme prévu.http: //jsfiddle.net/rawsmell/29JFk/1/. Qu'est-ce qui ne fonctionne pas exactement? – Rondel

Répondre

4

Pourquoi ne pas prendre vos fonctions de contrôle sanitaire de l'événement de flou pour les éléments de nom d'utilisateur et e-mail et les faire dans leur propre fonction nommée ou fonctions? Ensuite, appelez la fonction sur la page de chargement et de flou des événements (pour ces deux éléments). Votre code fonctionne correctement car lorsque la page est chargée, vous êtes en train de créer un flou sur quelque chose qui n'a jamais été ciblé.

+0

Bonne idée ... Je suis un idiot ... Je viens de comprendre que je valide avant de remplir le formulaire ... mes excuses pour avoir perdu votre temps. – Ronedog

1

Cela devrait fonctionner comme prévu.

Essayez le code suivant dans un nouveau fichier et testez-le ... Si cela fonctionne bien alors le problème est avec un autre bloc de code sur la même page qui cause ce problème.

  • Créer une page simple HTML
  • Ajouter un fichier script jQuery pour ce
  • Ajouter une entrée avec id "testinput"
  • Ajouter script suivant

    $(document).ready(function(){ 
        $("#testInput").blur(function(){ 
         alert(1); 
        }); 
    
        $("#testInput").trigger("blur"); 
    }); 
    
+0

merci pour la réponse. ça marche, j'ai eu la logique dans le mauvais ordre ... a pris du temps pour voir quelque chose de si simple. Merci de répondre . – Ronedog

Questions connexes