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 :

Désactiver plusieurs SELECT avec javascript


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 145
    Points : 59
    Points
    59
    Par défaut Désactiver plusieurs SELECT avec javascript
    Bonjour,


    je cherche a désactiver plusieurs select lorsqu'un seul est checked j'ai fais le script 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
    function ReactivChamp()
             {		 
    				 alert(document.getElementById("programme").selectedIndex);
    				 if (document.getElementById("programme").selectedIndex != 0)
                {
                document.getElementById("numLot").disable="true";
                document.getElementById("ville").disable="true";
                }
     
             else if (document.getElementById("numLot").selectedIndex) != 0)
                {
                document.getElementById("programme").disable="true";
                document.getElementById("ville").disable="true";
                }
     
             else if (document.getElementById("ville").selectedIndex != 0)
                {
                 document.getElementById("programme").disable="true";
                document.getElementById("numLot").disable="true";
                } 
             }
    en l'appelant depuis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <SELECT name="programme"  onChange="ReactivChamp()" tabindex="3" class="inputch2_n" onBlur="this.className='inputch2_n'" onFocus="this.className='inputch2_s'" >
    					<option value="none" defaut="checked">Choissisez un programme</option>
    					<?php
                                                    $sql = "SELECT * FROM programme";
                                                    $req_sql = mysql_query($sql)or die(mysql_error());
                                                    
                                                    while($array = mysql_fetch_array($req_sql))
                                                    {
                                                            echo "<option value=".$array['nom']." name=".$array['nom'].">".$array['nom']."</option>";
                                                    }       
                                            ?>		
    					</SELECT>

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    je suppose donc que ton script ne fonctionne pas ?

    Quelques pistes :
    * true et false sont des valeurs en soi => il ne faut pas de quotes
    * tu utilises document.getElementById() (ce qui est effectivement recommandé) mais tu n'as donné qu'un name à ton <select> ...

    A+

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 145
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Bonjour,
    je suppose donc que ton script ne fonctionne pas ?

    Quelques pistes :
    * true et false sont des valeurs en soi => il ne faut pas de quotes
    * tu utilises document.getElementById() (ce qui est effectivement recommandé) mais tu n'as donné qu'un name à ton <select> ...

    A+
    ok j'ai remis les valeur en diable=true

    Pour ce qui est des name j'en ai donné a chaque <option>

    comme tu peux le voir ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<option value=".$array['nom']." name=".$array['nom'].">".$array['nom']."</option>";

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    * tu utilises document.getElementById() (ce qui est effectivement recommandé) mais tu n'as donné qu'un name à ton <select> ...
    C'était sous-entendu : "Tu ne lui a pas donné d'ID alors que tu aurais dû (vu ton code)"

    A+

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 145
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    C'était sous-entendu : "Tu ne lui a pas donné d'ID alors que tu aurais dû (vu ton code)"

    A+
    j'ai bien ajouter les ID

    <SELECT name="programme" id="programme" onChange="ReactivChamp(this.selectedIndex)" tabindex="3" class="inputch2_n" onBlur="this.className='inputch2_n'" onFocus="this.className='inputch2_s'" >

    mais rien n'y fait.

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Agité Voir le message
    j'ai bien ajouter les ID

    <SELECT name="programme" id="programme" onChange="ReactivChamp(this.selectedIndex)" tabindex="3" class="inputch2_n" onBlur="this.className='inputch2_n'" onFocus="this.className='inputch2_s'" >

    mais rien n'y fait.
    OK, mais plus précisément ?
    * quel effet ?
    * erreur ? (laquelle)
    * tes autres scripts fonctionnent toujours après appel à celui-ci ?

    EDIT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <SELECT name="programme" id="programme" onChange="ReactivChamp(this.selectedIndex)" tabindex="3" class="inputch2_n" onBlur="this.className='inputch2_n'" onFocus="this.className='inputch2_s'" >
    Ce code ne correspond pas à celui posté (paramètre de la fonction)

    A+

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 145
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    OK, mais plus précisément ?
    * quel effet ?
    * erreur ? (laquelle)
    * tes autres scripts fonctionnent toujours après appel à celui-ci ?

    EDIT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <SELECT name="programme" id="programme" onChange="ReactivChamp(this.selectedIndex)" tabindex="3" class="inputch2_n" onBlur="this.className='inputch2_n'" onFocus="this.className='inputch2_s'" >
    Ce code ne correspond pas à celui posté (paramètre de la fonction)

    A+
    Il ne retourne pas d'erreur et les champ ne sont pas désactivés.

    Le code ne correspond pas en quoi ?

    je n'arrive pas a comprendre pourquoi lorsque l'index est different de 0 sur un de mes select les autre ne passent pas en disable.true

    pourtant j'ai bien rajouter les ID et j'ai changer le onChange pour

    onChange="Reactivchamp()" sans le this.selectedIndex

    si c'est ce que tu voulais dire

    merci pour l'aide en tout cas je continue de creuser

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Agité Voir le message
    je n'arrive pas a comprendre pourquoi lorsque l'index est different de 0 sur un de mes select les autre ne passent pas en disable.true
    Hum ... ben parce que c'est disabled

    Désolé de pas l'avoir vu avant

    EDIT : les remarques précédentes restent valables ...

    A+

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 145
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Hum ... ben parce que c'est disabled

    Désolé de pas l'avoir vu avant

    EDIT : les remarques précédentes restent valables ...

    A+
    ok c'est modifié j'ai remis les disabled a la place de disable, par contre je ne comprends pas pourquoi les remarque sont toujours valables etant donné que le ReactivChamp() n'a plus de parametres a passer.

    Maintenant que les syntaxe sont correct puisque quand je fais un alert de

    document.getElementById("programme").selectedIndex

    il me retourne bien le numero du selectedIndex.

    Ca veux dire qu'il passe bien dans la boucle, il trouve que le numero de l'index est different de 0 donc il doit desactiver les 2 autres champ.

    Sortie de la je ne vois pas quel parametres sont manquants ou ceux a ajouter.

  10. #10
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Agité Voir le message
    Sortie de la je ne vois pas quel parametres sont manquants ou ceux a ajouter.
    Les remarques que tu as déjà pris en compte, et sur lesquelles il ne faut pas revenir en arrière :
    * true et false sont des valeurs en soi => il ne faut pas de quotes
    * tu utilises document.getElementById() (ce qui est effectivement recommandé) mais tu n'as donné qu'un name à ton <select> ...
    A+

  11. #11
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 145
    Points : 59
    Points
    59
    Par défaut
    Trouvé !

    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
    function ReactivChamp()
             {		 
    				 if (document.getElementById("programme").selectedIndex  != 0)
                {
                document.getElementById("numLot").disabled=true;
                document.getElementById("ville").disabled=true;
                }
     
             else if(document.getElementById("numLot").selectedIndex != 0)
                {
                document.getElementById("programme").disabled=true;
                document.getElementById("ville").disabled=true;
                }
     
             else if(document.getElementById("ville").selectedIndex != 0)
                {
                 document.getElementById("programme").disabled=true;
                document.getElementById("numLot").disabled=true;
                } 
             }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <SELECT name="programme" id="programme"  onChange="ReactivChamp()" tabindex="3" class="inputch2_n" onBlur="this.className='inputch2_n'" onFocus="this.className='inputch2_s'" >
    					<option value="none" id="defaut" name="defaut" defaut="checked">Choissisez un programme</option>

  12. #12
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Agité Voir le message
    Trouvé !
    Je sais pas ce que tu avais perdu, mais si cette syntaxe était bonne.
    En fait c'est A+

  13. #13
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 145
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Je sais pas ce que tu avais perdu, mais si cette syntaxe était bonne.
    En fait c'est A+
    Oui ca parait étonnant mais il me selectionne bien les option que j'ai choisi par defaut, enfin tout marche et c'est niquel, merci pour ton aide.


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

Discussions similaires

  1. Réponses: 9
    Dernier message: 07/03/2011, 16h18
  2. plusieurs select avec valeur du type valeur[indice]
    Par varex dans le forum Struts 1
    Réponses: 4
    Dernier message: 24/11/2008, 17h01
  3. vérification champs d'e plusieurs forms avec javascript
    Par dolf13 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/11/2006, 00h35
  4. plusieur select avec le meme nom
    Par oughlad dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/05/2006, 12h09
  5. Problème pour différencier plusieurs select avec le même nom
    Par vallica dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 24/04/2006, 11h35

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