Bernd Richter: onkeypress in Formular funktioniert nicht

Hallo,

beim drücken von Return soll ein Alert kommen - kommt aber nicht.

Habe es bereits mit mehreren Browsern getestet...

<html><head>

<script language="text/javascript">
<!--

var hotkey=13

if (document.layers)
document.captureEvents(Event.KEYPRESS)

function enter(e)
{

if (document.layers){
if (e.which==hotkey)
alert('ok');
}
else
if (document.all){
if (event.keyCode==hotkey)
alert('ok');
}
}
//-->
</script>

</head>

<body>

<textarea onkeypress="enter()"></textarea>

</body>
</html>

  1. du fragst die variable e ab, übergibst diese aber nicht "enter()".

    1. du fragst die variable e ab, übergibst diese aber nicht "enter()".

      Auch mit <textarea onkeypress="enter(event)"></textarea> geht es nicht.

      1. Hallo,

        Auch mit <textarea onkeypress="enter(event)"></textarea> geht es nicht.

        vielleicht suchst du nach http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onkeyup@title=onkeyup ?

        http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onkeypress

        Gruß plan_B

        --
             *®*´¯`·.¸¸.·
  2. Hi Bernd!

    <script language="text/javascript">

    besser type="text/javascript" statt language..

    if (document.layers)
    document.captureEvents(Event.KEYPRESS)

    Gut, NS weiss nun, dass das event relevant ist.

    Aber: Wo ordnest du den event-handler dem event zu?
    http://de.selfhtml.org/javascript/objekte/window.htm#capture_events

    Dann gibt es eine Funktion bei dir:

    function enter(e)

    Und eine Textarea

    <textarea onkeypress="enter()"></textarea>

    Diese ruft tatsächlich enter() bei jedem Tastendruck auf... allerdings setzt sie nicht das event, weswegen du mit einen obigen if Abfragen ins leere läufst.

    Noch ein kleiner Tip:
    Mit einem globalen handler, wie beschrieben, kann man sich in einer globalen variablen den Code des letzten eingegebenen Zeichens merken.
    Mit onkeypress im entsprechenden Element und der daraufhin aufgerufenen Funktion weisst du, wer die Quelle war und kannst das Zeichen aus der globalen Variable abholen.

    Grüsse,
    Richard

    Grüsse,
    Richard