probleme de checkbox

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 : probleme de checkbox

par mario » 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;
}

par starkeus » 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;
}

par HD » 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 :!:

par mario » 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 ?

par starkeus » 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...

probleme de checkbox

par mambo » 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