Griser un champ a partir des cases à cocher

Fermé
beaf Messages postés 262 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 26 août 2015 - 8 nov. 2011 à 14:31
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 - 9 nov. 2011 à 16:24
Bonjour,

Je voudrais griser un champ de mon formulaire après avoir cocher une case à cocher ...
voici un exemple de mon formulaire.


<form name="coti">
<label>
<input type="radio" CHECKED name="zmodePayement" value="espece" id="zmodePayement_0" />
Espèce
</label>

<label>
<input type="radio" name="zmodePayement" value="cheque" id="zmodePayement_1" />
Chèque
</label>

<label>Montant :
<input type="text" name="zNcheque" id="zNcheque" />
</label>
</form>

5 réponses

beaf Messages postés 262 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 26 août 2015 1
8 nov. 2011 à 23:42
Merci JooS ! ça marche
1
bodry24 Messages postés 86 Date d'inscription vendredi 21 août 2009 Statut Membre Dernière intervention 18 août 2014 7
9 nov. 2011 à 09:10
Salut,
J'ai un petit blm avec le code js poster:
function griser() {
  if(document.getElementById('zNcheque').disabled) document.getElementById('zNcheque').disabled = false;
  else document.getElementById('zNcheque').disabled = true;
}

Et l'appel aussi qui se fait sur l'evenement onclick(). De ce fait si je click 2 fois sur un radio l'état du champs texte change deux fois.
Je te propose d'améliorer le script en passant un variable comme ceci
function griser(operation){
    if(operation=="cacher"){
           document.getElementById('zNcheque').disabled = true;
    }
    else{
          document.getElementById('zNcheque').disabled = false;
    }
}

Et pour le html;
<label>
    <input type="radio" onclick="griser('afficher');" CHECKED name="zmodePayement" value="espece" id="zmodePayement_0" />
Espèce
  </label>

  <label>
    <input type="radio" onclick="griser('cacher');" name="zmodePayement" value="cheque" id="zmodePayement_1" />
Chèque
  </label>

Je te conseil d'aller faire un tour sur www.toutjavascript.com Il y a tout ce qu'il te faut pour apprendre javascript.
N'oublie pas de marquer le sujet comme résolu si tu es satisfait.
1
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
9 nov. 2011 à 16:24
Lol, c'est juste bodry24, j'ai pas eu le temps de tester ... :)
0
bodry24 Messages postés 86 Date d'inscription vendredi 21 août 2009 Statut Membre Dernière intervention 18 août 2014 7
8 nov. 2011 à 14:48
Salut,
si je comprends bien u veux griser(bloquer) le champs montant si on coche le type chèque. Ajouter a tes "radio" une fonction js qui désactive ou active le champs montant en fonction du type de payement choisi.
ex: <input type="radio" onchange="griser();"name="zmodePayement" value="cheque" id="zmodePayement_1>

Ici griser() représente la fonction js
0
beaf Messages postés 262 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 26 août 2015 1
8 nov. 2011 à 15:25
Exactement, mais moi je cherche quelqu'un qui pourra m'aider sur le code de la fonction griser()...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
8 nov. 2011 à 18:02
Salut ...

La fonction griser dépend du code html, mais en prenant l'exemple que t'as poster ... ça donnerai ça ...

.JavaScript
function griser() {
  if(document.getElementById('zNcheque').disabled) document.getElementById('zNcheque').disabled = false;
  else document.getElementById('zNcheque').disabled = true;
}

.html
<form name="coti">
  <label>
    <input type="radio" onclick="griser();" CHECKED name="zmodePayement" value="espece" id="zmodePayement_0" />
Espèce
  </label>

  <label>
    <input type="radio" onclick="griser();" name="zmodePayement" value="cheque" id="zmodePayement_1" />
Chèque
  </label>

  <label>Montant :
    <input type="text" name="zNcheque" id="zNcheque" />
  </label> 
</form>
0