[JS] Textarea - Weitere Eingaben verhindern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [JS] Textarea - Weitere Eingaben verhindern

    Guten Tag allerseits!

    Habe hier ne kleine js-function die mir die eingegebenen Zeichen in einer Textarea zählt und ausgibt wieviele Zeichen noch eingegeben werden können.
    Just simple bis hier! Aber:
    Wie bekomm ich es [COLOR="Red"]ohne ein altert() und ohne disable[/COLOR] hin, dass keine weiteren Zeichen mehr eingegeben werden können!?
    Ich möchte so zu sagen einfach nur dass weitere Eingaben ignoriert werden!

    Jemand nen Tipp für mich!?

    Edit: Nur so ne Idee, aber vielleicht könnte das ja so klappen:
    PHP-Code:
    var maxlimit 150;
    field.value field.value.substring(0maxlimit); 
    Zuletzt geändert von nichtsooft; 23.05.2009, 16:09.
    WHILE (!$asleep) { $sheep++; }

  • #2
    How to stop further JavaScript events from executing - Stack Overflow

    Kommentar


    • #3
      Danke für den Link Desaster! Aber man muss ja nicht gleich mit Kanonen auf Spatzen schießen!

      Ich hab das jetzt mal so gelöst:
      PHP-Code:
      function zaehlen(txtareatxtfield) {
       var 
      max 150;
       var 
      inpt document.getElementById(txtarea).value.length 1;
       var 
      outpt document.getElementById(txtfield);
       
      outpt.value max inpt;
       if (
      inpt >= max) {
         
      // alert("Maximum erreicht !!!");
         
      document.getElementById(txtarea).style.color="#ee0000";
         var 
      newval document.getElementById(txtarea).value.substring(0max);
         
      document.getElementById(txtarea).value newval;
       } else if(
      inpt max) {
         
      document.getElementById(txtarea).style.color="#000000";
       }

      Leider bekomme ich bei der Ausgabe (ID: txtfield) falsche Werte... ^^
      WHILE (!$asleep) { $sheep++; }

      Kommentar


      • #4
        Ist zaehlen ein onChange- oder onKeyUp-Handler?
        Was heißt "falsche Werte"? Was passiert denn?

        Kommentar


        • #5
          Nun ja, anfangs stimmt die ausgegebene Zahl, jedoch wenn man jetzt her geht und einzelne Zeichen aus der Textarea raus löscht, ist der Wert um 1 zu klein! Selbiges trifft auch zu wenn man alle zeichen löscht! In diesem Fall gibt die function den Wert 149 zurück....

          PHP-Code:
          <FORM onKeypress="zaehlen('text', 'outp')" onKeydown="zaehlen('text', 'outp')"
          WHILE (!$asleep) { $sheep++; }

          Kommentar


          • #6
            Moin!

            Hier mal ein Beispiel:
            PHP-Code:
            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
              "http://www.w3.org/TR/html4/loose.dtd"
            >
            <
            html>
            <
            head>
            <
            title>Test</title>
            <
            meta http-equiv="content-type" content="text/html; charset=UTF-8">

            <
            script type="text/javascript" >
            function 
            show_chars_left(textareamax) {
                if(!
            maxmax 50;
                if(
            textarea.value.length >= max ) {
                    
            textarea.value textarea.value.substr(0max);
                    
            alert("Du darfst nur max. " max " zeichen eingeben!");
                }
                var 
            infodiv document.getElementById("charsleft");
                if(
            infodivinfodiv.innerHTML max textarea.value.length;
            }
            </
            script>


            </
            head>
            <
            body>

            <
            textarea rows=10 cols=50 onkeyup="show_chars_left(this, 50);"></textarea>
            <
            div id="charsleft"></div>

            </
            body>
            </
            html
            MfG
            Sein oder Nichtsein, das ist hier die Frage!

            Kommentar


            • #7
              Ja LOL!

              Schon blöd wenn man sich falsche Variablen deklariert...

              PHP-Code:
              var inpt document.getElementById(txtarea).value.length 1;
              ......
              if (
              inpt >= max) { 
              WHILE (!$asleep) { $sheep++; }

              Kommentar

              Lädt...
              X