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

JavaScript Discussion :

onChange dans un <select>


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Points : 9
    Points
    9
    Par défaut onChange dans un <select>
    Bonjours à tous et bonne année,

    Voilà j'ai un problème sans doute très simple pour vous :

    Dans un <select> j'ai plusieurs <option>, je veux qu'en changeant d'option cela exécute la fonction que j'ai créer qui s'appelle change() .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <select onChange="change();">
     
    	<option value="1">1ère option</option>
    	<option value="2">2ème option</option>  
     
    </select>
    Mon problème est que je veux rajouter la valeur de l'option choisie juste après "change" pour que ça exécute change2() en choisissant l'option 2, et change1() en choisissant l'option 1 etc ...

    Merci pour vos réponses

  2. #2
    Membre habitué Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Points : 193
    Points
    193
    Par défaut
    Salut,

    Peux-tu envoyer ton script javascript et html juste la fonction change() et les selects ?

    Merci.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 61
    Points : 37
    Points
    37
    Par défaut
    Bonsoir.

    Essaye avec cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <select>
     
    <option onChange="change(this.value)" value="1">1ère option</option>
    <option onChange="change(this.value)" value="2">2ème option</option>
     
    </select>
    Tu pourras ainsi passer la valeur de l'option sélectionné en paramètre de ta fonction change()....

    A l'intérieur de celle-ci tu fais une petite condition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function change(param) {
         if (param == 1) {
            new function() {
              /* ton code de la fonction change1 */
            }
         }
         else if (param == 2) {
            new function() {
              /* ton code de la fonction change2 */
            }
         }
     
         ....
    Voilà, encore faut-il que je voie comment sont écrites tes fonctions change1() et change2(), car là on imbrique plusieurs fonctions.

    wILL

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Non l'option n'accepte pas l'evènement onchnage qui doit rester sur la balise select

    Il faut passer la value et faire un aiguillage:
    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
     
     
    <select onChange="change(this.value);">
     
    	<option value="1">1ère option</option>
    	<option value="2">2ème option</option>  
     
    </select>
     
    function change(val){
              switch (val){
                                case 1 : change1();
                                            break;
                                case 2 : change2();
                                            break;
                               }
    }

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 61
    Points : 37
    Points
    37
    Par défaut
    Autant pour moi SpaceFrog.
    Et c'est vrai que le switch est mieux pensé qu'une bête structure conditionelle

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Énorme merci pour la rapidité de vos réponses.

    Ma fonction change() me sert à modifier la value="" d'un <input> dans le même formulaire.

    Suite à vos réponses j'ai essayé le code suivant :
    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
     
    <form name='formulaire'>
     
    <input type="text" name="champs" value="1" />
     
    <select onChange="change(this.value);">
    	<option value="1">1ère option</option>
    	<option value="2">2ème option</option>  
    </select>
     
    <input type="submit" />
     
    </form>
     
    <script type="text/javascript">
    function change(param){
              switch (param){
                                case 1 : change1();
                                            break;
                                case 2 : change2();
                                            break;
                               }
    }
     
    function change1() {
        document.forms['formulaire'].champs.value="1";
    }
     
    function change2() {
        document.forms['formulaire'].champs.value="2";
    }
    </script>
    Voilà et ça ne marche pas.

  7. #7
    Membre habitué Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Points : 193
    Points
    193
    Par défaut
    Pourquoi tu ne fairais pas ça :

    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
     
    <html>
    <head>
    <script type="text/javascript">
    function change(param){
    	var valeur;
    	valeur = document.getElementById(param).value;
    	if(valeur == 1){ change1(); }
    	if(valeur == 2){ change2(); }
    }
     
    function change1() {
        document.getElementById('champs').value = "1";
    }
     
    function change2() {
        document.getElementById('champs').value = "2";
    }
    </script>
    </head>
    <body>
     
    <form name='formulaire'>
     
    <input type="text" id="champs" name="champs" value="1" />
     
    <select id='selection' onChange="change('selection');">
    	<option value="">Choisissez une option</option>
    	<option value="1">1ère option</option>
    	<option value="2">2ème option</option>  
    </select>
     
    <input type="submit" />
    ou alors sur la même structure que les autres ton proposés :

    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
     
    <html>
    <head>
    <script type="text/javascript">
    function change(param){
        switch (param){
            case '1' : change1();
                        break;
            case '2' : change2();
                        break;
    		}
    	}
     
    function change1() {
        document.formulaire.champs.value="1";
    }
     
    function change2() {
        document.formulaire.champs.value="2";
    }
    </script>
    </head>
    <body>
     
    <form name='formulaire'>
     
    <input type="text" name="champs" value="1" />
     
    <select id='selection' onChange="change(this.value);">
    	<option value="">Choisissez une option</option>
    	<option value="1">1ère option</option>
    	<option value="2">2ème option</option>  
    </select>
     
    <input type="submit" />
     
    </form>

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Super ça marche très bien.

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    sinon plus directement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select onchange="document.formulaire.champs.value=this.value">

  10. #10
    Membre habitué Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Points : 193
    Points
    193
    Par défaut
    oui encore mieux si tes besoins se résument qu'a cette action.

    pourquoi faire simple quand on peut faire compliqué...mdr

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

Discussions similaires

  1. submit dans une balise select (onchange)
    Par lybhur dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/05/2010, 15h23
  2. Onchange dans un select
    Par saziley dans le forum Struts 2
    Réponses: 5
    Dernier message: 03/10/2009, 12h01
  3. iniber un onChange quand je me deplace dans une liste Select
    Par chimical dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 23/04/2008, 05h51
  4. onChange dans un select
    Par nebule dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 03/12/2007, 11h19
  5. onchange dans un select
    Par n@n¤u dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/05/2006, 13h57

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