[HTML -Javascript] "disabled" ou pas

Bonjour,

Je désire empêcher le remplissage de cases lorsque l'utilisateur répond 'non' à une question. Je n'arrive pas à écrire un code correct.
Je suppose qu'il faut utiliser une boucle "if" et la fonction "disabled" mais je ne vois pas comment.

voilà mon code HTML pour le moment :

<form>
<br>Voulez-vous ajouter une machine ? 
<br><input type=radio name="mach" value="O"> oui
<br><input type=radio name="mach" value="N"> non

<p>Si oui, renseignez les champs ci-dessous : 
<br>Tension au primaire (kV) : <input name="Uprimaire" size=5 value=0>
<br>Tension au secondaire (kV) : <input name="Usecondaire" size=5 value=0>
</form>


Merci de votre aide !

6 réponses

  1. excuse je n'avais pas compris la question.
    voila une solution

    <script>
    function active()
    {
    test.elements[2].disabled = false;
    test.elements[3].disabled = false;
    }
    function desactive()
    {
    test.elements[2].disabled = true;
    test.elements[3].disabled = true;
    }
    </script>
    <form name="test">
    <br>Voulez-vous ajouter une machine ?
    <br><input type=radio name="mach" value="O" onclick="active()"> oui
    <br><input type=radio name="mach" value="N" onclick="desactive()"> non

    <p>Si oui, renseignez les champs ci-dessous :
    <br>Tension au primaire (kV) : <input id="1" name="Uprimaire" size=5 value=0 >
    <br>Tension au secondaire (kV) : <input id="2" name="Usecondaire" size=5 value=0 >
    </form>
    1. Voici le mot magique
      <form>
      <br>Voulez-vous ajouter une machine ?
      <br><input type=radio name="mach" value="O" CHECKED> oui
      <br><input type=radio name="mach" value="N"> non
      1. ok mais ça me grise pas les cases de saisie quand la personne choisit "non".
        1. merci beaucoup !
          1. salut tout le monde j'ai un petit soucis aussi avec cette fonction .disabled

            [quote]<script>
            function erase(valeur)
            {
            if(valeur == "observations")
            {
            if (document.myform.observations.value == "Tapez votre texte ici.")
            document.myform.observations.value = ""
            }else if(valeur == "autre_texte")
            {
            if (document.myform.autre_texte.value.substring("0","22") == "Tapez votre texte ici.")
            document.myform.autre_texte.value = ""
            }
            }

            function empty(valeur) {
            if(valeur == "autre_texte")
            {
            if (document.myform.autre_texte.value == "")
            document.myform.autre_texte.value = "Tapez votre texte ici."

            if(document.myform.autre_texte.value.substring("0","5") == "OSSIU")
            {
            document.myform.cryptologie.checked = "true";
            document.myform.cryptologie.disabled = "true" ;
            }
            if(document.myform.autre_texte.value == "1234")
            {
            document.myform.cryptologie.disabled = "false";
            }
            }
            }

            function masquage()
            {
            document.myform.autre_texte.disabled=(document.myform.autre.checked==true)?false:true;
            }

            </script>

            <body onload="masquage()">
            <form name="myform" method="post" action="traitement.php">

            <input type="checkbox"name="autre" onclick="masquage()">Autre :<br />
            <textarea name="autre_texte" id="check_texte" cols=40 rows=3 onfocus="erase('autre_texte')" onblur="empty('autre_texte')">Tapez votre texte ici.</textarea>

            <br />
            <b><u>DOMAINE SSI CONCERNE :</u></b>
            <br /><br />
            <input type="checkbox" name="cryptologie">Cryptologie<br />

            </form>
            </body>
            /quote

            Le soucis est que j'arrive bien à desactiver la check box, parc onte pas moyen de la réactiver apres.
            Je pense que ca doit etre une erreur bete car le code s'execute bien et que cela fonctionne pour le textaera
          2. @ScallDésolé je me suis planté entre visualiser et ajouter j'ai oublié qques petits trucs à la fin du post su coup XD

            En fait ce que je cherche à faire, si le textarea vaut "OSSIU" :

            - remplir la checkbox
            - la désactiver

            mais si le textarea ne vaut "1234" la réactiver (ca c'est pour faire des tests).

            Si qqun a une idée ?
            Merci d'avance de votre attention.
          3. @ScallBonjour,

            ca pourra peut-être aider quelqu'un.
            La solution se trouve dans les guillemets autour de * false *. Il ne faut pas en mettre, apparement.

            Cordialement,
            X.
          4. En effet, si tu considère tes true et tes false comme des booléens, tu ne dois pas les encadrer de quotes, en revanche si tu les mets en chaîne de caractères, juste pour que ce soit parlant, là tu les mets bien.

            RAPPEL : Un booléen est de type bool, pas de type string ;)

            Cordialement
        2. 10 ans plus tard ....

          Gérer stock <input type='checkbox' name='stock' id='stock' onchange="gerer_stock()" /><br />
          <input type='text' name='qte' id="qte" placeholder="Quantité" disabled required /><br />

          function gerer_stock() {
          if(document.getElementById('stock').checked == true){ document.getElementById("qte").removeAttribute("disabled");
          }

          else(document.getElementById('stock').checked == false){ document.getElementById("qte").setAttribute('disabled','disabled');
          }
          }