SF2K: Formularauswertung on-the-fly

Hallo,
habe in einem Formular 2 Textfelder, eines für einen Text und das andere für die Länge des Textes.
Während ich jetzt beginne in das Feld zu schreiben, soll gleichzeitig ermittelt werden wie lange der Text bereits ist und im ersten Textfeld gespeichert werden.

Hat jemand eine Idee, wie ich das lösen kann? Meine Variante funktioniert leider nicht :(

Danke für eure Hilfe!

-------------------

Source:

<script language="javascript">
function length() {
 // ausgabe wieviel zeichen noch geschrieben werden können
 rest =  document.forms[0].text.length();
 document.form.laenge.value = rest;
        document.form.laenge.focus();
}
</script>

<form name="form" action="">

<input type="text" name="laenge" size="4">

<input type="text" name="text" value="text" onClick="javascript:length();" maxLength="200" size="50">

</form>

  1. Hi,

    <script language="javascript">

    type-Attribut!

    function length() {

    Schlecht gewählter Name - length ist in Javascript schon als Funktion vorhanden, das könnte Konflikte geben.

    rest =  document.forms[0].text.length();

    siehe z.B. hier - da verwendest Du ja length();
    Und das auch noch fürs gleiche Objekt.

    <input type="text" name="text" value="text" onClick="javascript:length();" maxLength="200" size="50">

    javascript: ist überflüssig bis falsch.

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hallo,

      function length() {

      Schlecht gewählter Name - length ist in Javascript schon als Funktion vorhanden, das könnte Konflikte geben.

      window.length ist keine Funktion:
      javascript:alert(window.length===window.frames.length);
      javascript:alert(typeof(window.frames.length));

      rest =  document.forms[0].text.length();

      siehe z.B. hier - da verwendest Du ja length();

      Dort will er die Eigenschaft »length« des String-Objekts verwenden, also sind die Klammern »()« überflüssig.

      http://de.selfhtml.org/javascript/objekte/frames.htm#length
      http://de.selfhtml.org/javascript/objekte/string.htm#length

      Mathias

  2. Hallo SF2K,

    habe in einem Formular 2 Textfelder, eines für einen Text und das andere für die Länge des Textes.
    Während ich jetzt beginne in das Feld zu schreiben, soll gleichzeitig ermittelt werden wie lange der Text bereits ist und im ersten Textfeld gespeichert werden.

    Im SELFHTML-Beispiel zum Event-Handler onKeydown wird genau so was behandelt: http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onkeydown

    viele Gruesse
      Stefan Muenz

    1. Hallo,

      möchte hier nur anmerken, dass es ein schlechtes Beispiel ist.
      Wenn ich eine Pfeiltaste drücke, dann habe ich nach deiner Berechnung schon ein Zeichen eingegeben. Dieses "length + 1" ist im Zusammenhang mit onKeyDown wirklich schlecht gewählt.

      bernd

      1. Hallo Bernd,

        Wenn ich eine Pfeiltaste drücke, dann habe ich nach deiner Berechnung schon ein Zeichen eingegeben. Dieses "length + 1" ist im Zusammenhang mit onKeyDown wirklich schlecht gewählt.

        Es ist ja auch nur ein Beispiel nach dem Motto "hier das Prinzip". Und du wirst zugeben, dass es wenig Sinn hat, bei einem Beispiel zum Event-Handler onKeyDown ein Beispiel zu bringen, dass mit lauter if's versucht, eingegebene Zeichen bis ins Detail zu kontrollieren. Das ist eben die Praxis-Mehrleistung, die User selber erbringen muessen. Silbertabletts gibts hier nun mal keine ;-)

        viele Gruesse
          Stefan Muenz

  3. hi,

    Meine Variante funktioniert leider nicht :(

    http://glasgoogle.de/

    gruß,
    wahsaga

    --
    I'll try being nicer if you'll try being smarter.