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 :

Affichage du loader Ajax si tous les champs requis sont remplis


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de Rony Rauzduel
    Homme Profil pro
    En formation Architecte logiciel
    Inscrit en
    Décembre 2008
    Messages
    638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : En formation Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 638
    Par défaut Affichage du loader Ajax si tous les champs requis sont remplis
    Bonjour à tous et à toutes,

    Je voudrais que le loader Ajax puisse s'afficher uniquement si les champs requis sont remplis.
    Je pensais écrire un code comme celui-ci :
    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    form = $("#annonceForm");
    if(form.attr("required").val('') {
    $("#loader").hide()
    } else {
    $("#loader").show();
    }

    voici l'intégralité du code
    Code Javascript : 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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    $(function(){
        // le chargement de la réponse du serveur se fera lors du clic sur le bouton de soumission du formulaire  
        // ET NON AU CHARGEMENT DE LA PAGE!        
        $(":submit").click(function(e) {  // lors du clic sur le bouton de soumission du formulaire 
            e.preventDefault();
            // on affiche le loader d'attente Ajax pour faire patienter l'utilisateur
            $("#loader").show();
     
            $("#iframe").load(function(){ // au chargement du DOM de la balise iframe            
                var rep = $(this).contents().find('#reponse').html();
                if(rep.substr(0,2)=="ok") {                
                    $("#loader").hide(); // on cache le loader d'attente Ajax
                    $('.annonceSent').css("color","#183152").fadeIn(2000).html("Félicitation, votre annonce a été ajoutée.");
                    $('.annonceSent').fadeOut(10000);
                    $(":input", "#annonceForm").not(':submit').val("");
                    $("#captchaImage").attr("src", "image.php?text");// permet de regénérer uniquement que le captcha sans vider le formulaire
                } else {
                    if(rep.substr(0,7)=="captcha") {
                        $("#loader").hide(); // on cache le loader d'attente Ajax
                        $('.annonceSent').css("color","#760001").show().text("Veuillez saisir CORRECTEMENT le code du captcha!");
                        $('#captcha').val("");
                        $('#captcha').focus();
                        $('.annonceSent').fadeOut(5000);	
                        $("#captchaImage").attr("src", "image.php?text");// permet de regénérer uniquement que le captcha sans vider le formulaire
                    } else if(rep.substr(0,6)=="Erreur") {
                        $("#loader").hide(); // on cache le loader d'attente Ajax				
                        $('.formErreur').show().text("Erreur lors de l'upload!");
                        $('.formErreur').fadeOut(5000);
                        $("#captchaImage").attr("src", "image.php?text");// permet de regénérer uniquement que le captcha sans vider le formulaire
                    } else if(rep.substr(0,7)=="Fichier") {
                        $("#loader").hide(); // on cache le loader d'attente Ajax
                        $('.formErreur').show().text("Le fichier uploadé est trop volumineux!");
                        $('.formErreur').fadeOut(5000);
                        $("#captchaImage").attr("src", "image.php?text");// permet de regénérer uniquement que le captcha sans vider le formulaire
                    } else if((rep.substr(0,7)=="Absence")) {
                        $("#loader").hide(); // on cache le loader d'attente Ajax
                        $("#titre").focus();
                        $('.formErreur').show().text("Veuillez remplir tous les champs!");
                        $('.formErreur').fadeOut(5000);
                        $("#captchaImage").attr("src", "image.php?text");// permet de regénérer uniquement que le captcha sans vider le formulaire
                    } 
                    $("#captcha", "#annonceForm").val("");
                } // fin else													
            }); // fin $("#iframe")        
            $('.annonceSent').html('');	// on vide la div d'affichage du message	
        }); // fin $(":submit").click()  
    });// fin $(function())
    Mais cela ne fonctionne pas.
    Merci d'avance.
    Transact.

  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 : 54
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(form.attr("required").val('')
    Ca ne veut rien dire cette ligne...

    Déjà, il manque la parenthèse fermante de la condition.
    Ensuite, ta variable form est supposée être un formulaire non ?
    Dans ce cas, étonnant qu'il ai un attribut required... mais quand bien même il en aurait un, cet attribut ne peut pas avoir de value... donc pas de .val()

    Enfin, comme pour beaucoup de méthodes jQuery, quand tu passes un paramètre à .val(), celui-ci devient un setter, c'est-à-dire que ça fait une affectation, dont l'équivalent booléen est toujours vrai !
    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
    Membre chevronné
    Avatar de Rony Rauzduel
    Homme Profil pro
    En formation Architecte logiciel
    Inscrit en
    Décembre 2008
    Messages
    638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : En formation Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 638
    Par défaut
    Oui effectivement cela ne veut rien dire, je le conçois.

    Comment faire référence à TOUS les éléments du formulaire ayant un attribut de required?
    Cet attribut required à pour valeur required

    Je pensais à ceci :
    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    form.find("input[required=required]").val())

  4. #4
    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 : 54
    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
    Ca dépend... la seule condition pour qu'un champ soit required, c'est la présence de l'attribut, sa valeur, on s'en moque un peu !
    Tu peux avoir
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input required="jeveuxpasquetusoisrequired" />
    le champ sera quand même required.
    Donc
    est amplement suffisant.
    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

  5. #5
    Membre chevronné
    Avatar de Rony Rauzduel
    Homme Profil pro
    En formation Architecte logiciel
    Inscrit en
    Décembre 2008
    Messages
    638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : En formation Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 638
    Par défaut
    Ok, merci résolu.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/04/2010, 10h44
  2. [CR 7] Erreur Tous Les Champs Ne Sont Pas Dans La Même Expression D'Index ?
    Par clementratel dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 23/01/2009, 12h39
  3. [MySQL] SELECT sur tous les champs Non nuls puis affichage ?
    Par elitemedia dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/08/2007, 15h48
  4. affichage de TOUS les champs d'une table
    Par babulior dans le forum ASP
    Réponses: 6
    Dernier message: 28/06/2005, 15h33
  5. afficher tous les champs d'une table
    Par julio84 dans le forum ASP
    Réponses: 8
    Dernier message: 19/01/2005, 10h31

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