onKeypress
Kay
- javascript
Hallö,
hab ein Formular mit Eingabefeldern und Buttons gebastelt. Einem der Eingabefelder hab das Ereignis onKeypress zugewiesen.
Wie bekomme ich heraus, welche Taste der Anwender gedüückt hat, als das Ereignis onKeypress ausgelöst wurde?
Danke und bis dann
Kay
Hallö Kay
<html><head><title>Test</title>
<script type="text/javascript">
<!--
window.captureEvents(Event.KEYPRESS);
window.onkeypress = Ausgabe;
function Ausgabe(Ereignis) {
alert("Sie haben die Taste mit dem Wert " + Ereignis.which + " gedrueckt");
}
//-->
</script>
</head><body>
Druecken Sie irgendwelche Tasten!
</body></html>
Gruß Burkhard
Danke - passt.
funktioniert das dann in jedem Browser und nur bei MSIe oder Netscape?
Danke - passt.
zuverlässig nur bei MSIe und auch nur auf Dosen!
Gruß Burkhard
Hallo,
onKeyPress liefert den ASCII-Code der Taste
onKeyDown liefert den Scan-Code der Taste, wobei die Belegung eine eigene ist. Welche Taste welchen Code hat, musst Du einfach mal probieren.
Microsoft stellt in window.event.keyCode den jeweiligen Wert zur Verfügung. Dieser Code kann gelesen und auch beschrieben werden. Du kannst also einen "Übersetzer" aufbauen.
window.captureEvents() ist eigentlich Netscape-proprietär. Kann der neue IE das jetzt auch? Der IE5.5 konnte es noch nicht.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo Tom
onKeyPress liefert den ASCII-Code der Taste
onKeyDown liefert den Scan-Code der Taste»»
sach mal, liefert nicht "window.event.keyCode" den ASCII-Code der Taste?
der eventhandler onKeyPress beschreibt doch nur das auslösen, oder bin ich falsch informiert?
Gruß Burkhard
Hallo Burkhard,
Hallo Tom
onKeyPress liefert den ASCII-Code der Taste
onKeyDown liefert den Scan-Code der Taste»»
sach mal, liefert nicht "window.event.keyCode" den ASCII-Code der Taste?
der eventhandler onKeyPress beschreibt doch nur das auslösen, oder bin ich falsch informiert?
hier haben wir ein OO-System vorliegen. Es handelt sich in Wirklichkeit um zwei vollkommen verschiedene Variablen. Durch den Event-Handler für onKeyPress wird die dafür vorgesehene Funktion aufgerufen und in ihr unter anderem eine Kopie von window.event.keyCode übergeben. Darin befindet sich dann der ASCII-Code
Und wenn man das Ganze mit onKeyDown durchführt, dann wird in die Kopie (Variablen-Instanz) eben der Scan-Code reingeschrieben.
Das bedeutet also, dass Du in einer durch onKeyDown aufgerufenen Funktion nicht direkt an den aktuellen ASCII-Code der Taste herankommst.
Hab ich mich nun etwas besser ausgedrückt? Tut mir leid, wenn's Missverständnisse gab.
Liebe Grüße aus http://www.braunschweig.de
Tom