probleme de checkbox

mambo
Invité n'ayant pas de compte PHPfrance

08 févr. 2006, 09:03

Bonjour à tous comment utilisé les check box pour activer un formulaire
ce que je veux faire c'est quand on clike sur le checkbox
le formulaire est actif
si on decoche le chekbox
le formulaire n'est pas actif

merci

Eléphant du PHP | 441 Messages

08 févr. 2006, 10:41

Salut!
Comme tu imagines tu fais ça via javascript.
Tu te fais une fonction JS que tu vas appeler lors de l'évènement onClick sur la checkbox.
Cette fonction JS va parcourir ton formulaire et mettre la propriété disabled de tous les élements du formulaire à true.
En gros ca peut donner ça:
<input type="checkbox" name="check" value="" onClick="DesactiveFormulaire('idForm');" />
<form action="" method="post" id="idForm" >
<input type="text" id="input1" name="input1" />
<input type="text" id="input2" name="input2" />
</form>
Le JS :
function DesactiveFormulaire(idFormulaire) {

var form=document.getElementById(idFormulaire);
for ( var i = 0; i < form.elements.length ; i++)
form.elements[i].disabled='true';
}
Bon tu dois améliorer pour prendre en compte le booleen du disabled via un parametre ou une variable globale au script etc...
Futures Stars par ici >> www.apel-doorn.com
fan d'info et du ... PSG !! :D
Apprendre, comprendre et maîtriser telle est ma devise!
Fan inconditionnel de netvibes

Mammouth du PHP | 768 Messages

08 févr. 2006, 12:42

Bonjour,

comment faire si la checkbox a été décochée puis recochée ?
je n'ai pas trouvé l'évenement JavaScript OnUnclick :oops:

dois je utiliser onChange et faire une condition ?
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

HD
Mammouth du PHP | 1181 Messages

08 févr. 2006, 12:44

je ne maitrise pas js mais je suppose que :
onclick une fois signifie cochée
et onclick une 2eme fois signifie décochée
donc si tu créé une variable, selon qu'elle soit pair ou impair tu saura si la case est cochée ou pas :!:
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Eléphant du PHP | 441 Messages

08 févr. 2006, 14:08

Bon allez je complète ;)
<input type="checkbox" id="check" name="check" value="" onClick="DesactiveFormulaire(this, 'idForm');" />
<form action="" method="post" id="idForm" >
<input type="text" id="input1" name="input1" />
<input type="text" id="input2" name="input2" />
</form>
Le JS :
function DesactiveFormulaire(checkboxObject, idFormulaire) {

var form=document.getElementById(idFormulaire);
for ( var i = 0; i < form.elements.length ; i++)
     if (checkboxObject.checked)
          form.elements[i].disabled='';
     else
          form.elements[i].disabled='true';
}
Par contre si ta case à cocher est par défaut décoché, penses à mettre disabled='true' sur tous les élements du formulaire au chargement de ta page.
:)

Edit: version "un peu optimisé":
function DesactiveFormulaire(checkboxObject, idFormulaire) {
     if (checkboxObject.checked)
          var mode='true';
     else
          var mode='';
     var form=document.getElementById(idFormulaire);
     for ( var i = 0; i < form.elements.length ; i++)
               form.elements[i].disabled=mode;
}
Futures Stars par ici >> www.apel-doorn.com
fan d'info et du ... PSG !! :D
Apprendre, comprendre et maîtriser telle est ma devise!
Fan inconditionnel de netvibes

Mammouth du PHP | 768 Messages

08 févr. 2006, 14:28

function DesactiveFormulaire(checkboxObject, idFormulaire) {
     if (checkboxObject.checked)
          var mode='true';
     else
          var mode='';
     var form=document.getElementById(idFormulaire);
     for ( var i = 0; i < form.elements.length ; i++)
               form.elements[i].disabled=mode;
}
encore plus compact :wink:

function DesactiveFormulaire(checkboxObject, idFormulaire) {
   var mode = (checkboxOject.checked) ? "true" : "";     
   var form=document.getElementById(idFormulaire);
   for ( var i = 0; i < form.elements.length ; i++)
               form.elements[i].disabled=mode;
}
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?