Pascal: Funktionsaufruf "onChange" in Formularfeld

Hallo,
ich habe ein kleines aber feines Problem mit Javascript.
Ich versuche, zwei Zahlen zu subtrahieren und das innerhalb eines Formulars mit zwei Textfeldern.

Das eigentliche Problem ist nicht das ansprechen der Felder, sondern der Funktionsaufruf.
Hier ein Auszug aus dem Quelltext:

[...]
01 | <script language="javascript" type="text/javascript" src="script/input.js"></script>
02 | </head>
03 | <body class="input">
04 | <form name="timesheet" method="POST" action="../servlet/timesheet" >
05 | <table>
06 | <tr><td>Von: <input name="von" type="text" size="2" maxlength="2" value="12" onKeyup="javascript:von();">:<input name="von2" type="text" size="2" maxlength="2" value="00"></td></tr>
07 | <tr><td>Bis: <input name="bis" type="text" size="2" maxlength="2" value="13">:<input name="bis2" type="text" size="2" maxlength="2" value="00"></td></tr>
08 | <tr><td><input name="stunden" type="text" size="5" maxlength="25" value=""></td></tr>
09 | </form>
[...]

Dazu kommt natürlich noch die JS Datei:
function von() {
 alert('Ergebnis');
}

Das Ganze ergibt nun noch nicht viel Funktionalität, is aber auch nur zu Testzwecken!

Hier das Problem:
Wenn ich die Funktion im BODY per "onLoad" aufrufe, funktioniert sie.
Rufe ich direkt ein "javascript:alert('Ergebnis');" in dem Textfeld per "onKeyup" (oder onChange) auf, funktioniert sie auch.

Aber komischerweise funktioniert sie _nicht_ wenn ich die Funktion "von();" in dem "onKeyup"-Event in dem Textfeld aufrufe. (Siehe im Quellcode Zeile 06)

Was habe ich nicht beachtet? Ich kanns mir nicht erklären.
Würde mich über Denkanstöße freuen! :-)

Mit freundlichem Gruße
Der Pascal

PS: Lösungen wären natürlich auch net schlecht :-)

  1. Hi Pascal

    Würde mich über Denkanstöße freuen! :-)

    Lass das javascript: weg, schreibe nur von().

    MfG, Dennis.

    --
    Hinweise:
    Signatur 1 von 3:
    Meine Homepage: http://www.riehle-web.com
    Tutorial: http://tutorial.riehle-web.com
    1. Hi Dennis,

      Würde mich über Denkanstöße freuen! :-)
      Lass das javascript: weg, schreibe nur von().

      Keine schlechte Idee, leider ändert das nichts... die Ausführung geschieht einfach nicht... und der IE und der Mozilla meckern auch erstmal nicht...

      Aber wenn ich dann in dem entsprechenden TExtfeld was ändere, gibt mir der IE folgenden Fehler aus:

      Zeile:  1949
      Zeichen: 1
      Fehler: Das Objekt unterstützt diese Eigenschaft oder Methode nicht.

      Was aber witzig ist: Mein Script (bzw. die HTML Seite) hat _nur_ knapp 180 Zeilen! Ich verzweifel hier fast.. argh...

      Trotzdem Danke für deine Hilfe.
      Mit freundlichem Gruß
      Der Pascal.

  2. Hallo,

    06 | <tr><td>Von: <input name="von" type="text" size="2" maxlength="2" value="12" onKeyup="von();">

    Dazu kommt natürlich noch die JS Datei:
    function von() {
     alert('Ergebnis');
    }

    Es gibt hier einen Namenskonflikt. Das INPUT-Element, welches das Ereignis auslöst, darf nicht den selben Namen haben, wie die Funktion.

    viele Grüße

    Axel

    1. Hi Axel!

      Danke für den Tipp, werd ich direkt mal in die Tat umsetzten....*freu*

      mfg

      Pascal