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 :

Evénement change() sur un select


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Evénement change() sur un select
    Bonjour,

    Je souhaite faire clignoter un texte juste après que l'utilisateur ai fait son choix dans une liste déroulante (Je ne suis pas très calé en Javascript).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     $(".accueil-select").change(function(){
    $("#texte-clignotant-2").fadeOut(800).fadeIn(800).fadeOut(400).fadeIn(400);   
    });
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <select onchange="document.accueilNaissance.submit();" name="naissance" class="accueil-select">
    <option value="1980">1980</option>
    <option value="1981">1981</option>
    <option value="1982">1982</option>
    </select>
     
    <p id="texte-clignotant-2" class="texte-6">Cotisation mensuelle TTC :</p>
    Le problème c'est que ça ne fonctionne pas. Si je mets une alert() à la place de la ligne (ligne 3) qui doit faire clignoter le texte, elle s'allume puis s'éteint en une fraction de seconde. Je n'ai aucun message d'erreur dans la console de Firebug.

    Comment faire clignoter Cotisation mensuelle TTC : juste après que l'utilisateur ai fait son choix ?

    Merci de votre aide

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <select name="naissance" class="accueil-select">
        <option value="1980">1980</option>
        <option value="1981">1981</option>
        <option value="1982">1982</option>
    </select>
     
    <p id="texte-clignotant-2" class="texte-6">Cotisation mensuelle TTC :</p>

    Code JS : 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
    $( ".accueil-select" ).on( "change", function(){
     
        // $( ".accueilNaissance" ).trigger( "submit" ); // ??
     
        // http://api.jquery.com/queue/
     
        $( "#texte-clignotant-2" ).queue( function(){
     
            $( this )
                .fadeOut( 800 )
                .fadeIn( 800 )
                .fadeOut( 400 )
                .fadeIn( 400 )
                .dequeue();
        });
     
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Invité
    Invité(e)
    Par défaut
    Je te remercie pour ton aide.

    J'ai modifié le code mais le problème c'est que je dois soumettre le formulaire après le clignotement du texte.

    J'ai fait comme ceci :

    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
     
    $( ".accueil-select" ).on( "change", function(){
     
    	 $( "#texte-clignotant-2" ).queue( function(){
     
    		 $( this )
    			 .fadeOut( 800 )
    			 .fadeIn( 800 )
    			 .fadeOut( 400 )
    			 .fadeIn( 400 )
    			 .dequeue();
    		});
     
    	 $( "form[name=accueilNaissance]" ).trigger( "submit" );
     
    });
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $( ".accueil-select" ).on( "change", function(){
    	$("#texte-clignotant-2").fadeOut(800).fadeIn(800).fadeOut(400).fadeIn(400);
           $( "form[name=accueilNaissance]" ).trigger( "submit" );
    });
    Le code du formulaire et le texte qui doit clignoter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <select name="naissance" class="accueil-select">
        <option value="1980">1980</option>
        <option value="1981">1981</option>
        <option value="1982">1982</option>
    </select>
     
    <p id="texte-clignotant-2" class="texte-6">Cotisation mensuelle TTC :</p>
    Comment soumettre le formulaire juste après le clignotement du texte ?

    Merci

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Je n'arrive pas à trouver comment agir seulement après la fin de la dernière animation dans la queue "fx". J'ai été obligé de me rabattre sur setTimeout().

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form name="accueilNaissance"></form>
     
    <select name="naissance" class="accueil-select">
        <option value="1980">1980</option>
        <option value="1981">1981</option>
        <option value="1982">1982</option>
    </select>
     
    <p id="texte-clignotant-2" class="texte-6">Cotisation mensuelle TTC :</p>

    Code JS : 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
    $( "form[name='accueilNaissance']" ).on( "submit", function(){
     
        console.log( "submit form" );
     
        return false; // bloque le submit
    });
     
    $( ".accueil-select" ).on( "change", function(){
     
        var delay = 800;
     
        $( "#texte-clignotant-2" ).queue( function(){
            $( this )
                .fadeOut( delay )
                .fadeIn( delay )
                .fadeOut( delay/2 )
                .fadeIn( delay/2 )
                .dequeue();
     
     
            setTimeout(function(){
                $( "form[name='accueilNaissance']" ).trigger( "submit" );
            }, ( 3 * delay + 100 ) );
        });
     
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonsoir,
    et un truc du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $( this )
      .fadeOut( 800 )
      .fadeIn( 800 )
      .fadeOut( 400 )
      .fadeIn( 400 )
      .queue( function(){
          alert('The End!')  // le trigger ici
         })
       .dequeue();

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    J'ai trouvé mieux, la méthode .fadeToggle( options ) : http://api.jquery.com/fadeToggle/

    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
    $( ".accueil-select" ).on( "change", function(){
        $( "#texte-clignotant-2" )
            .fadeToggle({
                "duration" : 1200,
                "queue" : "textQueue"
            })
             .fadeToggle({
                "duration" : 1200,
                "queue" : "textQueue"
            })
            .fadeToggle({
                "duration" : 1200,
                "queue" : "textQueue"
            })
            .fadeToggle({
                "duration" : 1200,
                "queue" : "textQueue"
            })
           .fadeToggle({
                "duration" : 1200,
                "queue" : "textQueue",
                "complete" : function(){
                    $( "form[name='accueilNaissance']" ).trigger( "submit" );
                }
            })
            .dequeue( "textQueue" );
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

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

Discussions similaires

  1. change() sur un select plante avec val()
    Par SpaceFrog dans le forum jQuery
    Réponses: 2
    Dernier message: 26/07/2012, 11h40
  2. Question sur un SELECT...... AS....
    Par geant63 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 15/09/2009, 17h17
  3. TRANSACTION SERIALIZABLE ne change rien sur mes selects.
    Par netoale dans le forum Administration
    Réponses: 14
    Dernier message: 16/07/2008, 11h57
  4. Faire apparaître un champ texte en cliquant sur un select
    Par yoyot dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/03/2005, 16h16
  5. ajout de colonnes sur une selection
    Par DaxTaz dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 05/08/2004, 17h44

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