Keypressed
Dominique Uhe
- javascript
0 CirTap
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?
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 ;-)