IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Blocage d'un submit


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Par défaut Blocage d'un submit
    Bonjour
    Je débute en Jquery et je suis pas à l'aise sur certain truc
    Bon voila mon problème j' écrit un script pour faire un formulaire qui vérifie instantanément un pseudo sur la base de donnée de mon site
    Donc y a pas de souci pour la vérification il me renvoie bien si je clique sur le "Valider" si il existe déjà ou pas
    Le Hic c est que j arrives pas a bloquer la validation du formulaire si le pseudo n est pas bon donc j ai créer une variable globale "valid" qui est fonction de ce que me donne la fonction $.post mais ca marche pas !!!
    J ai pas mis le code php mais juste il faut savoir que si le pseudo est valide la
    réponse de la requête ajax sera "1" et sinon c est "0" va si trêve de blabla voila le code javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    var valid;
     
    $(document).ready(function() {
     
    		$('#submit').click(function(){
     
    			 $.post("check.php", {username: $('#user').val()},  
    				function(response){
    									if (response==0)
    										{
    											 $('#usernameResult1').fadeOut();
    											$('#usernameResult2').fadeOut();
    											answer='Invalide';
    											setTimeout("finishAjax('usernameResult1', '"+escape(answer)+"')");
    											valid=false;
     
    										}
    									else 
    										{
    											$('#usernameResult2').fadeOut();
    											$('#usernameResult1').fadeOut();
    											answer='Valide';
    											setTimeout("finishAjax('usernameResult2', '"+escape(answer)+"')");
    											valid=true;
     
    										}
     
    										});
    			return valid;}); });
     
     
    function finishAjax(id, response) {
     
    $('#'+id).html(unescape(response));
    $('#'+id).fadeIn();
    } //finishAjax
    voila sinon il faut savoir a ce que j ai lu sur le site officielle de jquery: la fonction callback c est à dire dans mon cas fonction(response) est interne a $.post donc on peut essayer de caler
    des variable "valid" a "false" ou a "true"
    ca reste que local et la fonction $.post renvoie "object XMLHttpRequest" donc oubliée le var rep=$.post ca renverra jamais un boolean :/

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Salut.

    Ton problème vient du fait que ta requête est asynchrone, donc le submit de ton formulaire sera effectué avant de recevoir la réponse du serveur.

    Une solution peut être de passer par un faux submit, c'est-à-dire un simple bouton. Quand tu cliques sur le bouton, tu effectues ta vérification de pseudo et en fonction de la réponse, tu lances ou non le submit.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Par défaut
    ok en gros tu veux que je crée un bouton qui n est pas le "submit" du formulaire qui fait juste la vérification du pseudo et si il me renvoie "true" je valide??
    c est ca?

    Bon le premier problème qui me viens c est comment récupère la réponse que me renvoie le $.post donc le "data" ou le "response" dans mon cas dans une variable par exemple
    honnêtement j est déjà pensé a ton idée mais j ai du mal en Jquery
    Donc un script au moins pour cette phase me débloquera tous je penses

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Par défaut
    Grand merci a toi Bovino
    J'avoue que ton idée même si j y est déjà penser ma trotté une partie de la soirée mais en faite je me suis mal pris et j ai pas penser a la puissance de jquery avec les sélecteurs , j ai trop pensé comme en javascript
    Donc en gros je fais juste une vérification du pseudo avec par exemple une perte de focus du champ en code ca donne ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $('#username').blur(function() {  bon en gros je remet le même code qu au départ }

    Je rappelle que cette fonction va afficher "Valider" ou "Invalide"
    dans un span disons avec un id="pseudo_info"
    Ben juste il me suffit de mettre un évènement "click" sur le bouton "submit" en conditionnant selon la valeur du span d'id='pseudo_info'
    ca donne sans détailler ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     $(document).ready(function() {
     
    		$('#username').blur(function(){même fonction que dans mon 1er post });
                    $('#submit').click(function(){
                                    pseudo_info= $('#pseudo_info').text();
                                       if(pseudo_info=='valide'){
                                                  return true;}
                                        else return false;
                                             });
    });
    Bon voila je vous donne demain la fonction toute faite même avec le php et html qui va avec
    J'avoue que c était pas plus complique que ca

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Blocage Machine Complet Mandrake 9.2
    Par DaiKo dans le forum Administration système
    Réponses: 8
    Dernier message: 04/03/2004, 08h19
  2. [WIN2000][JAVA]blocage de l'application
    Par narmataru dans le forum InterBase
    Réponses: 9
    Dernier message: 09/12/2003, 13h07
  3. [CVS] "blocage" de ressource ?
    Par xa1 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 06/10/2003, 16h26
  4. Blocage à 60 images par seconde
    Par houssa dans le forum OpenGL
    Réponses: 5
    Dernier message: 24/06/2003, 08h52
  5. [Kylix] Blocage Kylix 3
    Par DevX dans le forum EDI
    Réponses: 2
    Dernier message: 13/11/2002, 20h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo