Fischer, Markus: Restlänge von Textfeldern in Formularen

Hallo Zusammen,

ich habe ein "kleines" Problem bei der Ermittlung der Länge von Textefeldern in Formularen.

Hintergrund ist, das ich nur die Länge an Eingabe erlauben will, die auch tatsächlich in die Datenbank passt.

Dazu benutze ich folgenden Code: function showStringLen(){  var str_len = document.getElementById("tb1").value.length;  document.getElementById("Ausgabe").innerText = str_len + 1;  if(str_len > 10){  document.getElementById"btn1").style.visibility= "hidden";  }  else{  document.getElementById("btn1").style.visibility = "visible";  } }

Das klappt auch soweit ganz gut, allerdings sind verschiedene Tasten bzw. tastenkombinationen Gift für dieses Vorgehen. Hier ein paar Beispiele:

  • Backspace löscht zwar das letzte Zeichen, macht aber trotzdem plus eins und erst beim nächsten Backspace minus eins -> Anzeige ist also falsch.

  • Shift+Pos1 markiert den text, löschen durch ENTF oder Backspace löscht, Aktualisierung der Anzeige (und damit evtl. Einblenden des Buttons) kommt aber erst beim nächsten tastendruck

ich denke, diese Liste lässt sich beliebig erweitern.

Kann mir jmd. weiterhelfen, evtl. mit nem anderen Script oder aber mit ner Änderung in meinem?

Vielen Dank im voraus! Gruß Markus

  1. Baust du das Ding in Netscape???

    1. Baust du das Ding in Netscape???

      Nee, vorrangig für den IE5.5 bzw. IE6.

      Gruß markus

  2. Hallo Markus,

    Kann mir jmd. weiterhelfen, evtl. mit nem anderen Script oder aber mit ner Änderung in meinem?

    Du schreibst nicht dazu, welchen Event-Handler Du für den Aufruf der Funktion verwendest. Ich tippe mal auf onKeyDown. Verwende stattdessen onKeyUp, dann sollte es gehen.

    Grüße
    Andreas

    --
    "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning."
    (Rich Cook)