Dominique Uhe: Keypressed

Also habe folgendes Probiert:
eine Input form für Text:

<input name="befehl" size=60 maxlength=60...

und jetzt kommt der springen de punkt...
mit dem onkeypress eventhandler frage ich jetzt
den keywert nämlich den der Entertaste(13)...

onkeypress="if(window.event.keycode==13) {test()}">

wenn ich aber dann die enter Taste auf der Textzeile drücke passiert gar nichts... :\ kann mir jemand helfen?

  1. Hallo,

    und jetzt kommt der springen de punkt...
    mit dem onkeypress eventhandler frage ich jetzt
    den keywert nämlich den der Entertaste(13)...

    onkeypress="if(window.event.keycode==13) {test()}">

    wenn ich aber dann die enter Taste auf der Textzeile drücke passiert gar nichts... :\ kann mir jemand helfen?

    Warum fragst du das RETURN nicht in test() selbst durch? Vielleicht stört sich der Browser (welcher eigentlich?) auch schlicht an den fehlenden Semikolon, return true; oder geschweiften Klammern:
    <INPUT
      onkeypress="if(blabla){test(); return true;};
      return true;" >
    (ob sowas funktioniert???)

    Du gewinnst eigentlich nicht viel, indem Du versucht, das Return vor dem Aufruf der Funktion abzufragen. Ich behaupte einfach mal, daß man in einem Event-Statement keine "ganzen Scripts" unterbringen kann/darf. In der Regel werden hier nur Funktionsnamen "erwartet".

    Ich würd einfach test() aufrufen und dort prüfen, ob Return gedrück wurde oder nicht, also:
    <script>

    function test(objEvent) {
    var taste ="";

    if (nav4up) taste = objEvent.which;
    if (ie4up)  taste = window.event.keycode;
    if (taste==13) {
         mach_was_mit_return;
      }
    return true;
    }
    </script>

    <INPUT ... onkeypress="test();">

    Ich hab das hier direkt reingehackt und nicht getestet, sollte aber so ähnlich aussehen. Zudem funktioniert dein Code auch nur im IE4+. Für den Navigator muß vorher die Eventfunktion *registriert* werden (was ich mal ausgelassen habe). Wie das funzt steht unter anderem hier <../../tq.htm> - einfach mal suchen*)

    Der Navi übergibt der (registrierten) Event-Funktion sein Event-Objekt, diese sollte daher auch einen benanntes Argument haben, damit man drarauf zugreifen kann, wohingegen beim IE - wie du es gemacht hast - nur über window.event Zugriff auf derlei Schnickschnack besteht. Auf der Seite wird das Argument dieser Event-Funktion "Ereignis" genannt, es könnte aber auch "WasAuchImmerImBrowserGradPassiertIst" heißen.

    Mit der Kleinschreibung warst du in jedem Fall schon richtig: der IE mag ein "onKeyPress" nicht.

    Viel Spaß
    CirTap

    *) ich geb ja zu,ich schau hier auch nicht immer nach, aber wenn man weiß, "wonach" man sucht, wird man in der Regel auch fündig ;-)