Champs texte qui s'active selon valeur d'une case à cocher

Champs texte qui s'active selon valeur d'une case à cocher - HTML/CSS - Programmation

Marsh Posté le 24-07-2006 à 15:11:20    

Salut à tous,
 
Je voulais faire un petit script "classique" qui permet d'activer ou non des champs texte selon la valeur d'une case à cocher. j'ai fait un truc, qui ne marche pas apparement, si quelqu'un voit pourquoi. merci
 

Code :
  1. <script language="Javascript">
  2. function GereControle() {
  3. if(document.form.chkb_1.value = '-1')
  4. {
  5.  document.getElementById('texte_1').disabled=false;
  6.         document.getElementById('texte_2').disabled=false;
  7. else
  8.  document.getElementById('texte_1').disabled=true;
  9.         document.getElementById('texte_2').disabled=true;
  10. }
  11. }
  12. </script>


.....

Code :
  1. <input type="checkbox" id="chkb_1" onClick="GereControle();" CHECKED>
  2. <input type="text" id="texte_1" value="Contenu de texte_1">
  3. <input type="text" id="texte_2" value="Contenu de texte_2">


Message édité par rocs2 le 24-07-2006 à 15:11:39
Reply

Marsh Posté le 24-07-2006 à 15:11:20   

Reply

Marsh Posté le 24-07-2006 à 15:40:19    

if(document.form.chkb_1.value = '-1')  
-> == au lieu de =
tu peux utiliser à la place if(document.form.chkb_1.checked). Voila ;)

Reply

Marsh Posté le 24-07-2006 à 15:43:40    

merci, bon apparement ya pas que ça, mais merci déjà de cette petite réctification !
c'est peut etre au niveau du formulaire qui ne reconnait pas non ?


Message édité par rocs2 le 24-07-2006 à 15:48:18
Reply

Marsh Posté le 24-07-2006 à 15:48:31    

si si ça doit marcher, et puis comme te le conseillais oGGo checked est plus indiqué.
Et puis autant utilisé également document.getElementById pour ta checkbox:

Code :
  1. function GereControle() {
  2.     if(document.getElementById('chkb_1').checked) {
  3.       document.getElementById('texte_1').disabled=false;
  4.       document.getElementById('texte_2').disabled=false;
  5.     } else{
  6.       document.getElementById('texte_1').disabled=true;
  7.       document.getElementById('texte_2').disabled=true;
  8.     }
  9.   }

Reply

Marsh Posté le 24-07-2006 à 15:51:44    

effectivement, là ça marche très bien !
merci beaucoup, vous êtes trop fort les gars

Reply

Marsh Posté le 25-07-2006 à 09:41:25    

re-bonjour à tous,
 
j'essaye maintenant d'aller un peu plus loin et donc en laissant apparaître ou pas les champs texte selon si la case est cochée ou pas !
j'ai donc fait ça :
 

Code :
  1. function GereControle2() {   
  2. if(document.getElementById('chkb_2').checked) {
  3.       document.getElementById('paquet2').style.visibility='visible';
  4. } else{     
  5. document.getElementById('paquet2').style.visibility='hidden';
  6. }  }


.....

Code :
  1. <input type="checkbox" id="chkb_2" onClick="GereControle2();">
  2. <div id="paquet2">
  3. <td>Lundi</td><td><input name="lundi" type="text" size="5"  id="texte_6">
  4. .....
  5. </div>


 
ça fait rien du tout, même pas d'erreur. si quelqu'un a une tite idée.
merci

Reply

Marsh Posté le 25-07-2006 à 09:51:46    

j'ai pas testé mais il n'y a strictement aucune raison pour que ton code marche pas sauf que dans ta fonction js:
- si la case est cochée, ta div est visible
- si ta case est pas cochée, ta div est invisible
 
A l'affichage, ta case est pas cochée par défaut et ton div est visible ( ce qui ne va pas avec les règles d'avant), a mon avis c'est ce qui doit t'induire en erreur. Essaye de cliquer plusieurs fois, tu verras que ça doit marcher!

Reply

Marsh Posté le 25-07-2006 à 09:53:40    

j'ai fait un test en mettant un texte simple dans mon div, ça marche bien ! par contre dans mon cas, ça marche pas, surement parce que j'ai des <tr><td>...etc...
les div ne marchent pas avec ces balises ? ya une astuce pour contourner ce pb ?
merci

Reply

Marsh Posté le 25-07-2006 à 09:58:10    

c'est bon, j'ai mis tout dans une <table> et ça à l'air de marcher.
 
merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed