Bonjour,
lors du chargement de ma page j'aimerais qu'un champs soit désactivé,
et après avoir sélectionné un choix de la liste( value=1) j'active mon champs texte.
Version imprimable
Bonjour,
lors du chargement de ma page j'aimerais qu'un champs soit désactivé,
et après avoir sélectionné un choix de la liste( value=1) j'active mon champs texte.
Bonsoir,
Code:
1
2
3
4 function enableInput(){ var a = document.getElementById("idSelect"); document.getElementById("idInput").disabled= !(a.options[a.selectedIndex].value==1); }
Code:
1
2
3
4
5 <select id="idSelect" onchange="enableInput()"> <option value="0">0</option> <option value="1">1</option> </select> <input type="text" disabled="disabled" id="idInput" />
A+.
ça marche pas je comprend pas pourquoi.
Voici mon code html:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <TR> <TD class="label">Type de paiement <span>*</span> </TD> <TD> <select name="paie" onchange="desactiver()"> <option value="0">paiement</option> <option value="1">chèque</option> <option value="2">carte bancaire</option> <option value="3">espèce</option> <option value="4">virement</option> <option value="5">prélèvement</option> <option value="6">Autre</option> </select> </TD> </TR> <TR> <TD class="lab">Montant de sous opération <span>*</span> </TD> <TD> <INPUT type=text name="montantssop" disabled="disabled"> </TD> <td>€</td> </TR>
qui y a t-il dans ta fonction désactiver(), qui visiblement devrait s'appeler activer() d'ailleurs?
Il faut que tu ais une ID sur ton INPUT si tu utilises la méthode getElementById.
Relis bien ce que t'as mis andry.aime
voici mon code:
Code:
1
2
3
4
5
6 function desactiver(){ var a = document.getElementByName("paie").selectedIndex; If (a.value==3) document.getElementByName('montantssop').disabled==false; //!(a.options[a.selectedIndex].value==3); }
c'est bien ce que je pensais il te faut mettre des ID à tes contrôles
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <tr> <td class="label">Type de paiement <span>*</span></td> <td> <select id="paie" name="paie" onchange="desactiver()"> <option value="0">paiement</option> <option value="1">chèque</option> <option value="2">carte bancaire</option> <option value="3">espèce</option> <option value="4">virement</option> <option value="5">prélèvement</option> <option value="6">Autre</option> </select> </td> </tr> <tr> <td class="lab">Montant de sous opération <span>*</span></td> <td><input type=text id="montantssop" name="montantssop" disabled="disabled"></td> <td>€</td> </tr>
je pense que l'erreurs n'est pas à ce niveau, j'ai tester avec id et name mais ça marche pas.
Je sais pas pourquoi et j'ai besoin de faire ce test sur mes intefaces
euh ! pardon regardé trop vite
c'est ce que t'as mis andry.aimeCode:
1
2
3
4 function desactiver(){ var a = document.getElementById("paie"); document.getElementById("montantssop").disabled= !(a.options[a.selectedIndex].value==3); }
il est préférable de ne pas utiliser la méthode getElementsByName, avec un s
je n'utilise pas de s dans mon code !!!!
c'est en partie ton erreur, mais ATTENTION cette méthode retourne une collection donc il faut faire l'appel comme suit
de plusCode:var a = document.getElementsByName("paie")[0]; // recup l'objet SELECT
de plusCode:if (a.value==3) // i minuscule
Code:document.getElementByName('montantssop').disabled==false; // comparaison et non affectation
Merci pour tes réponse, mais je comprend pas pourquoi ça marche toujours pas.
Code:
1
2
3
4
5 function desactiver(){ var a = document.getElementsByName('paie')[0].value; if (a==0){ document.getElementsByName('montantssop').disabled=false; }}
Désolé si je vous embêtes, mais j'ai jamais utilisé javascript, c'est la première fois.
idem ici
devientCode:document.getElementsByName('montantssop').disabled=false;
Code:document.getElementsByName('montantssop')[0].disabled=false;
rien n'a changer en rajoutant le 0, j fait un test simple si je change de valeur j'affiche un alert; mais l'alert ne s'affiche pas, je pense que le navigateur ne connait pas cette fonction "onchange"
Tu nous montres ton code javascript et html :koi:
CODE JS:
HTML/Code:
1
2
3
4
5 function desactiver(){ var a = document.getElementsByName('paie')[0].value; if (a==3){ document.getElementsByName('montantssop').disabled=false; }}
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 </form name="form"> <tr> <td class="label">Type de paiement <span>*</span></td> <td> <select id="paie" name="paie" onchange="desactiver()"> <option value="0">paiement</option> <option value="1">chèque</option> <option value="2">carte bancaire</option> <option value="3">espèce</option> <option value="4">virement</option> <option value="5">prélèvement</option> <option value="6">Autre</option> </select> </td> </tr> <tr> <td class="lab">Montant de sous opération <span>*</span></td> <td><input type=text id="montantssop" name="montantssop" disabled="disabled"></td> <td>€</td> </tr></form>
Bonjour,? :?Code:
1
2 if (a=="3"){ // une value est de type string document.getElementsByName('montantssop')[0].disabled=false;
EDIT : ceci dit, avecton formulaire n'est pas valide. :mrgreen:Code:</form name="form">
De plus, l'imbriquer ainsi dans la structure d'une <table> t'expose également à des comportements aléatoires suivant les navigateurs.
Et je confirme aussi que les id sont toujours préférables pour faire référence aux objets de la page. ;)
A+
En fait j'ai rajouter form à la fin car la structure de ma page est plus longue que ce que j'ai affiché et mon form est bien dans sa place, pas de problème à ce niveau.
cela veut dire qu'il y a une erreur ailleurs si ton alert ne s'affiche pas, quant à la méthode change elle est bien prise en compte par les navigateurs et ce depuis le début.
je remets la fonction
elle marche...même si l'attribut/propriété disabled est légèrement bizarre!Code:
1
2
3
4
5
6 function desactiver(){ var a = document.getElementsByName('paie')[0].value; if( a == "3"){ document.getElementsByName('montantssop')[0].disabled = false; } }
les value des contrôles sont de type string, même si javascript autorise la comparaison entre 3 et "3", donc autant prendre de bonnes habitudes en comparant des mêmes types
En fait il y a pas d'erreurs sur le code , le problème c'est que j'ai deux fonction javascript: desactiver() et valider() si j’enlève valider, desactiver marche et quand j'ai les deux ça marche pas.
Je vous ai embêter pour rien. Merci beaucoup pour votre aide.