2009-12-08 4 views
0

J'ai un formulaire qui est validé par jquery, mais j'ai besoin que l'événement blur se déclenche à nouveau lorsque le bouton submit est coché, au cas où l'utilisateur supprime quelque chose. Il affiche une erreur mais le "tick" est toujours affiché à côté de la zone de texte, car cela ne change que sur l'événement de flou.jquery toggle flou sur toutes les zones de texte?

Comment puis-je faire basculer l'événement de flou vers toutes les zones de texte pour les valider à nouveau?

Merci

modifier: code ajouté

if(httpxml.readyState==4) 

{ 
    if (httpxml.responseText.indexOf("Successful") >= 0) 
{ 
    $("#result").show("slow"); 
    $("#result").html("Project request has successfully been sent"); 
    $("#result").removeClass("result_error"); 
} 
else if (httpxml.responseText.indexOf("Fail") >= 0) 
{ 
$("#result").html("One or more errors have occured, please fix and submit again"); 
$("#result").addClass("result_error"); 
$("#result").show("slow"); 
$(':text').trigger('blur'); <<--- Blur text boxes here 
} 

} 

vérification:

function check_email(email) 
{ 
    var httpRequest; 
     make_request() 


    $("#loading").show(); 

    function stateck() 
    { 
     if(httpxml.readyState==4) 
     { 
      if (httpxml.responseText.indexOf ("Email Ok") >= 0) 
     { 

      $("#email_tick").show(); 
      $("#email_cross").hide(); 
      $("#email_error").hide("normal"); 
      $("#loading").hide(); 
      emailok = true; 


     } 

     else 
     {    
      $("#email_tick").hide(); 
      $("#email_cross").show(); 
      document.getElementById('email_error').innerhtml = "Invalid email"; 
      $("#email_error").show("slow"); 
      $("#loading").hide(); 
      emailok = false; 

     } 
     checkCanSubmit();   
     } 
    } 

httpxml.onreadystatechange=stateck; 
email_url="../checking/check_email.php?email=" + email.value; 
httpxml.open("GET",email_url,true); 
httpxml.send(null); 
} 
+1

si vous utilisez le la validate() plugin (http://docs.jquery.com/Plugins/Validation/validate) puis dès qu'un utilisateur fait quoi que ce soit dans un champ après la validation initiale, le champ est revalidé. – dnagirl

+0

Bonjour, J'utilise ma propre validation ajax, merci. – Elliott

+0

Alors, que se passe-t-il dans le gestionnaire de flou? Et par curiosité si vous utilisez déjà jQ pourquoi ne pas utiliser $ .ajax()? – prodigitalson

Répondre

3

Im pas vraiment clair sur ce que vous êtes en demandant, mais si vous demandez comment déclencher manuellement le flou:

$(':text').trigger('blur'); 
+0

Merci encore ne peut pas le faire fonctionner – Elliott

+0

pouvez-vous poster les parties pertinentes de votre JS et html? Je pense que nous pouvons tous mal comprendre ce que vous devez faire. Il sera plus facile de comprendre si nous pouvons voir ce que nous traitons :-) – prodigitalson

+0

ajouté =) ......... – Elliott

0
$('#button').click(function() { 
    $('input').blur(); 
}); 

Le code se lit comme:

Lorsque le bouton avec id="button" est cliqué, f ind all <input /> et déclenche l'événement blur sur eux.

Réglez les sélecteurs en fonction de vos besoins.

+0

Merci cela ne semble pas fonctionner, j'utilise $ ('input'). Blur(); mais ce n'est pas réellement sur le bouton cliquer, il vérifie si un texte de réponse échoue. J'ai un div montrant l'erreur cela fonctionne bien, flou ne fonctionne pas. – Elliott

2

Vous pouvez déclencher par:

$('input:text').blur(); 
// or 
$('input:text').trigger('blur'); 
Questions connexes