Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JS] disabled tout le temps or je ne le souhaite pas!!

Sujet résolu
    31 octobre 2006 à 19:35:25

    Bonsoir,
    j'ai un chti problème de débutant mais je n'arrive pas à trouver la solution.
    Le porblème donc c'est que dans un formulaire j'ai un textarea et dans ce textarea je voudrais que au bout de 250 caratère le textarea se mette en disabled or il s'y met tout le temps! j'ai essayer de mettre des: "si textarea==250 caractère alors disabled = true;" etc mais rien n'y fait!
    j'implore votre aide o_O
    Voici mon code:



    <html>
    <head>
    <title>
    test avec getElementById
    </title>
    <script type="text/JavaScript" language="javascript">
    function apercu() {
    document.getElementById('apercu').innerHTML = document.getElementById("bou").value;
    document.getElementById('nb').innerHTML = document.getElementById("bou").value.length;
    if(document.getElementById("bou").value.length >= 250)
    {
    alert("Vous ne pouvez plus tapper de caractère.");
    document.getElementById('bou').disabled=disabled;
    }
    else
    {
    document.getElementById('bou').disabled=;
    }
    }

    </script>
    </head>
    <body>
    <textarea cols="50" rows="6" onkeyup="apercu()" id="bou" disabled=></textarea>
    <div id="apercu"></div><br><b><div id="nb"></div></b>
    </body></html>
    • Partager sur Facebook
    • Partager sur Twitter
    :)
      31 octobre 2006 à 19:44:27

      Pour que le textarea ne soit pas désactivé à la base, tu n'as pas besoin d'écrire "disabled" dans le code html:

      <textarea cols="50" rows="6" onkeyup="apercu()" id="bou"></textarea>

      Ensuite, du coté js, soit tu met disabled=true; (true = activé, donc la désactivation est activée lol).
      Soit false.
      Ce qui devrait donner:

      //...
      alert("Vous ne pouvez plus tapper de caractère.");
      document.getElementById('bou').disabled=true;
      }
      else
      {
      document.getElementById('bou').disabled=false;
      //...


      Mais je ne sais si ta méthode est très pratique car une fois le champs de texte bloqué, on ne peut plus écrire (forcément), donc on ne peut pas corriger.
      • Partager sur Facebook
      • Partager sur Twitter
        31 octobre 2006 à 19:46:10

        Tu aurais une autre méthod a me proposer?
        • Partager sur Facebook
        • Partager sur Twitter
        :)
          31 octobre 2006 à 20:16:11

          Je chercherais plutôt à anuler la frappe de la dernière touche, en renvoyant true ou false.

          Pour celà il faut écouter l'évênement javascript qui se produit avant que la lettre ne s'inscrive (pour qu'on puisse l'anuler), donc on utilise plutôt onkeydown (au lieu de onkeyup):

          <textarea cols="50" rows="6" onkeyup="return apercu(event);" id="bou" disabled=></textarea>

          event est utile pour vérifier la touche appuyée, si l'utilisateur appuye sur "retour arrière" pour effacer une lettre, on va pas lui dire "Vous ne pouvez plus écrire".

          Donc on a une fonction apercu de ce genre:

          function apercu(event) {
          document.getElementById('apercu').innerHTML = document.getElementById("bou").value;
          document.getElementById('nb').innerHTML = document.getElementById("bou").value.length;
              if( event.keyCode < 32 ) //On laisse passer toute les touches dont le code est inférieur à 32 (la plupart des touches systèmes comme entré, echap etc)
              {
                  return true;
              }
              else if(document.getElementById("bou").value.length >= 250)
              {
                  return false;
              //document.getElementById('bou').disabled=true;
              }
              else
              {
              //document.getElementById('bou').disabled=false;
                  return true;
              }
          }
          • Partager sur Facebook
          • Partager sur Twitter
            31 octobre 2006 à 20:52:16

            [Edit] Ci-gît une connerie. La prochaine fois, je vérifierai avant de parler.
            • Partager sur Facebook
            • Partager sur Twitter
              31 octobre 2006 à 20:53:13

              pas possible dans un textarea..
              • Partager sur Facebook
              • Partager sur Twitter
              :)

              [JS] disabled tout le temps or je ne le souhaite pas!!

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown