2010-11-25 5 views
3

J'ai cette vérification ajax pour voir si le nom est trouvé ou nofound. Cela fonctionne bien quand les données sont trouvées, mais quand il retourne nofound, je dois le soumettre à nouveau pour le déclencher.jQuery ajax vérifier et soumettre le formulaire, toujours avoir à soumettre deux fois lorsque ajax retourner nofound

Quelqu'un at-il une suggestion ou une meilleure solution pour cela?

$('#formletter').submit(function() { 
    var name = $('#name').val(); 

    if ($.formLoading != false) { 
     $.ajax({ 
     type: 'POST', 
     url: "submit_ajax_contents.php", 
     data: "namecheck="+name, 
     success: function(data) { 
      if(data == 'nofound'){ 
      $.formLoading = false; 
      $('#formletter').submit(); 
      }else{ 
      alert('found'); 
      $.formLoading = true; 
      } 
     } 
     }); 
    return false; 
    } else { 
    return true; 
    } 

    }); 

}); 

Un grand merci :)

Répondre

1

Vous voudrez peut-être faire un appel ajax non async: (je n'ai pas testé ce code)

$('#formletter').submit(function(event) { 
    var name = $('#name').val(); 
    var found = false; 
    $.ajax({ 
     async: false, 
     type: 'POST', 
     url: "submit_ajax_contents.php", 
     data: "namecheck="+name, 
     success: function(data) { 
      if(data == 'found') 
       found = true; 
     } 
    }); 
    if (found) 
     event.preventDefault(); 
}); 
+0

Notez que si l'appel échoue ajax, il supposera 'found' est' false' (c'est-à-dire que la valeur ne sera pas changée) – cambraca

+0

Et, bien sûr, vous devriez indiquer à l'utilisateur que la vérification du nom est en cours, afin que l'utilisateur ne panique pas quand quelques secondes passent et rien ne semble s'être passé. – cambraca

+0

Oui, cela semblait faire le travail, merci :) – Joannes

Questions connexes