Fonction desactiver plusieurs select

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Fonction desactiver plusieurs select

par agité » 12 oct. 2007, 15:53

Trouvé !

Code : Tout sélectionner

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 : Tout sélectionner

<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>

par agité » 12 oct. 2007, 14:36

Ok j'ai donc fait ca :

Code : Tout sélectionner

function ReactivChamp() { if (document.form1.programme.selectedIndex != 0) { document.form1.numLot.disable="true"; document.form1.ville.disable="true"; } else if (document.form1.numLot.selectIndex) != 0) { document.form1.programme.disable="true"; document.form1.ville.disable="true"; } else if (document.form1.ville.selectIndex != 0) { document.form1.programme.disable="true"; document.form1.numLot.disable="true"; } }
si le selectedIndex est different de 0 donc si au moins des element est selectionné on vas desactiver les 2 autres.

pourtant rien ne se passe

par d0m » 12 oct. 2007, 14:03

il me retourne undifined
exact, tout simplement parce que l'attribut checked n'existe pas pour les listes déroulantes, c'est l'attribut selectedIndex qui est l'index de l'élément selectionné.

par agité » 12 oct. 2007, 13:50

mdr quel timbré je fais :o

bon maintenant pour
alert(document.getElementsByName("programme").checked);
il me retourne undifined

par d0m » 12 oct. 2007, 13:38

Dans ce cas il va falloir sortir les grands moyens :
j'ai bien peur qu'il va falloir que tu appelles ta fonction javascript avec son nom correct.... :wink:

Code : Tout sélectionner

function ReactChamp(element) ......
<SELECT [...] onChange="ReactivChamp(this.element);" [...]>

par agité » 12 oct. 2007, 13:05

j'ai tenter de mettre le onChange sur les SELECT :

<SELECT name="programme" onChange="ReactivChamp(this.element);"; tabindex="3" class="inputch2_n" onBlur="this.className='inputch2_n'" onFocus="this.className='inputch2_s'" >
et le tester juste avec :
function ReactChamp(elem)
{
alert('acctiv'.document.form1.programme.checked);
}


mais toujours rien n'est retourné

par d0m » 12 oct. 2007, 12:48

c'est que ta fonction n'est même pas appelée.
=> c'est donc dans l'appel de ta fonction qu'il y a un problème :

Pour une liste c'est onChange et pas onClick.

par agité » 12 oct. 2007, 11:56

il ne retourne pas d'alert :?

par d0m » 12 oct. 2007, 11:55

qu'est ce qu'il t'affiche en alert?

par agité » 12 oct. 2007, 11:33

en mettant une valeur element qui est renvoyer par javascript rien ne se passe

Code : Tout sélectionner

function ReactChamp(element) { alert(document.getElementsByName(element).checked); if (document.getElementsByName("programme") = document.getElementsByName(element)) { document.getElementsByName("numLot").disable="true"; document.getElementsByName("ville").disable="true"; } else if (document.getElementsByName("numLot") = document.getElementsByName(element)) { document.getElementsByName("programme").disable="true"; document.getElementsByName("ville").disable="true"; } else if (document.getElementsByName("ville") = document.getElementsByName(element)) { document.getElementsByName("programme").disable="true"; document.getElementsByName("numLot").disable="true"; } }
la valeur renvoyée est

Code : Tout sélectionner

onClick="ReactivChamp(this.element)";

par agité » 12 oct. 2007, 10:41

il faut que je fasse passer la valeur du champ qui est selectionner pour deselectionner les autres

pour ca je fais passer la valeur dans la fonction ReactChamp :

Code : Tout sélectionner

onClick="ReactivChamp("programme")";
pour programme et de suite pour le reste et dans le javascript :

Code : Tout sélectionner

function ReactChamp(nom) { alert(document.getElementsByName("nom").checked); if (document.getElementsByName("programme").checked) { document.getElementsByName("numLot").disable="true"; document.getElementsByName("ville").disable="true"; } else if (document.getElementsByName("numLot").checked) { document.getElementsByName("programme").disable="true"; document.getElementsByName("ville").disable="true"; } else if (document.getElementsByName("ville").checked) { document.getElementsByName("programme").disable="true"; document.getElementsByName("numLot").disable="true"; } }

par d0m » 12 oct. 2007, 10:36

petit commencement de debuggage pour t'orienter :

Code : Tout sélectionner

function ReactChamp() { alert(document.getElementsByName("programme").checked); if (document.getElementsByName("programme").checked) { document.getElementsByName("numLot").disable="true"; document.getElementsByName("ville").disable="true"; } else if (document.getElementsByName("numLot").checked) { document.getElementsByName("programme").disable="true"; document.getElementsByName("ville").disable="true"; } else if (document.getElementsByName("ville").checked) { document.getElementsByName("programme").disable="true"; document.getElementsByName("numLot").disable="true"; } }

Fonction desactiver plusieurs select

par agité » 12 oct. 2007, 10:29

Bonjour,


je cherche a désactiver plusieurs select lorsqu'un seul est checked j'ai fais le script suivant ;

Code : Tout sélectionner

function ReactChamp() { if (document.getElementsByName("programme").checked) { document.getElementsByName("numLot").disable="true"; document.getElementsByName("ville").disable="true"; } else if (document.getElementsByName("numLot").checked) { document.getElementsByName("programme").disable="true"; document.getElementsByName("ville").disable="true"; } else if (document.getElementsByName("ville").checked) { document.getElementsByName("programme").disable="true"; document.getElementsByName("numLot").disable="true"; } }

Code : Tout sélectionner

onClick="ReactivChamp()";

Rien ne se passe quand je clic sur un des select

Une idée ?