Forum Doku Wiki Blog

Forumsarchiv 2005, Januar
auf enter reagieren

archivierte Beiträge lesen

  1. (JAVASCRIPT) auf enter reagieren von g.a., 31. 01. 2005, 19:22

auf enter reagieren

Der folgende Beitrag wurde am 31. 01. 2005, 19:22 Uhr von g.a. veröffentlicht.

hi,
ich wollte per javascript eine konsole simulieren,
dafür habe ich ein textarea benutzt. nur es soll eine funktion nur per ENTER aufrufen, nicht zur nächsten zeile springen.
zetzt meine frage:
gibt es sowas wie onEnter="blabla()"?
oder wie könnte ich es sonst lösen?

danke für antworten.

auf enter reagieren

Der folgende Beitrag wurde am 31. 01. 2005, 20:36 Uhr von Gernot Back veröffentlicht.

Hallo g.a.,

> hi,
> ich wollte per javascript eine konsole simulieren,
> dafür habe ich ein textarea benutzt. nur es soll eine funktion nur per ENTER aufrufen, nicht zur nächsten zeile springen.
> zetzt meine frage:
> gibt es sowas wie onEnter="blabla()"?

Indirekt ja, denn es gibt das keypress-Event.

Das fragst du wie folgt ab:

<script type="text/javascript" language="JavaScript">
<!--
function melden(e) {
  var keyCode=(e)? e.which :event.keyCode;
  if(keyCode==13) alert("ENTER gedrückt!");
}
document.onkeypress=melden;
//-->
</script>


Gruß Gernot

auf enter reagieren

Der folgende Beitrag wurde am 31. 01. 2005, 23:24 Uhr von Thomas J.S. veröffentlicht.

Hallo,


> Indirekt ja, denn es gibt das keypress-Event.
>
> Das fragst du wie folgt ab:
>
> <script type="text/javascript" language="JavaScript">
> <!--
> function melden(e) {
>   var keyCode=(e)? e.which :event.keyCode;
>   if(keyCode==13) alert("ENTER gedrückt!");
> }
> document.onkeypress=melden;
> //-->
> </script>


Was mich eigentlich mal überraschte, dass ein onKeyDown="if(event.keyCode==13) machWas();" in Formularelementen mir "allen" (IE 5+, NS 6+, Mozilla, Opera) funktioniert.

Grüße
Thomas

Opera-Bug beim Reagieren auf Enter ?

Der folgende Beitrag wurde am 31. 01. 2005, 23:43 Uhr von Gernot Back veröffentlicht.

Hallo Thomas,

> Was mich eigentlich mal überraschte, dass ein onKeyDown="if(event.keyCode==13) machWas();" in Formularelementen mir "allen" (IE 5+, NS 6+, Mozilla, Opera) funktioniert.

Nein, das Folgende funktioniert nicht ...

<textarea onKeyDown="if(event.keyCode==13) return false;"  name="meineArea" cols="20" rows="5"></textarea>

... denn der Umbruch kommt bei allen Browsern in der Textarea an.

Dies hier hingegen funktioniert in IE6 und Mozilla1.7.2 unter Win98:

<textarea onKeyPress="if(event.keyCode==13) return false;"  name="meineArea" cols="20" rows="5"></textarea>

Warum der Zeilenumbruch aber in Opera7.54 auch mit dem onKeyPress-Event nicht unterdrückt wird, wüsste ich auch mal gerne.

Gruß Gernot

Opera-Bug beim Reagieren auf Enter ?

Der folgende Beitrag wurde am 01. 02. 2005, 00:05 Uhr von Thomas J.S. veröffentlicht.

Hallo,

> > Was mich eigentlich mal überraschte, dass ein onKeyDown="if(event.keyCode==13) machWas();" in Formularelementen mir "allen" (IE 5+, NS 6+, Mozilla, Opera) funktioniert.
>
> Nein, das Folgende funktioniert nicht ...
>
> <textarea onKeyDown="if(event.keyCode==13) return false;"  name="meineArea" cols="20" rows="5"></textarea>
>
> ... denn der Umbruch kommt bei allen Browsern in der Textarea an.

Hmmmm..., das habe ich so nicht ausprobiert, da ich immer eine Funktion dabei aufrufe ;-)


> Dies hier hingegen funktioniert in IE6 und Mozilla1.7.2 unter Win98:
>
> <textarea onKeyPress="if(event.keyCode==13) return false;"  name="meineArea" cols="20" rows="5"></textarea>
>

Gut zu wissen.

> Warum der Zeilenumbruch aber in Opera7.54 auch mit dem onKeyPress-Event nicht unterdrückt wird, wüsste ich auch mal gerne.
>

Sagt die JS-Konsole was dabei?

Grüße
Thomas

Opera-Bug beim Reagieren auf Enter ?

Der folgende Beitrag wurde am 01. 02. 2005, 00:29 Uhr von Gernot Back veröffentlicht.

Hallo Thomas,


> > Nein, das Folgende funktioniert nicht ...

> > <textarea onKeyDown="if(event.keyCode==13) return false;"  name="meineArea" cols="20" rows="5"></textarea>

> > ... denn der Umbruch kommt bei allen Browsern in der Textarea an.

> Hmmmm..., das habe ich so nicht ausprobiert, da ich immer eine Funktion dabei aufrufe ;-)

Wahrscheinlich liegt es daran, dass onKeyPress früher feuert als onKeyDown.

> > Warum der Zeilenumbruch aber in Opera7.54 auch mit dem onKeyPress-Event nicht unterdrückt wird, wüsste ich auch mal gerne.

> Sagt die JS-Konsole was dabei?

Nein, die schweigt still.

Ich habe auch versucht, den eingefügten Zeilenumbruch nachträglich herauszulöschen, das geht aber auch nicht, und zwar in keinem der getesteten Browser. Das ist schon alles sehr seltsam.

<script type="text/javascript" language="JavaScript">
<!--
function filtern(e) {
  var keyCode=(e)? e.which :event.keyCode;
  if(keyCode==13) {
    var txt = document.meinForm.meineArea.value;
    txt = txt.replace(/\n/, "");
    document.meinForm.meineArea.value = txt;
    //alert(txt);
    //return false;
  }
}

//-->
</script>

Gruß Gernot

Opera-Bug beim Reagieren auf Enter ?

Der folgende Beitrag wurde am 01. 02. 2005, 07:30 Uhr von Tom veröffentlicht.

Hello,

> Wahrscheinlich liegt es daran, dass onKeyPress früher feuert als onKeyDown.

Die beiden liefern auch unterschiedliche Codes. Der eine liefert das Ereignis und der andere den Zustand. Das ist so ähnlich wie mit Scancode und Interrupt der Taste und readkey und Poll durchs Programm.


Harzliche Grüße aus http://www.annerschbarrich.de

Tom
--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau

Opera-Bug beim Reagieren auf Enter ?

Der folgende Beitrag wurde am 01. 02. 2005, 11:39 Uhr von molily veröffentlicht.

Hallo,

> > Wahrscheinlich liegt es daran, dass onKeyPress früher feuert als onKeyDown.
>
> Die beiden liefern auch unterschiedliche Codes. Der eine liefert das Ereignis und der andere den Zustand. Das ist so ähnlich wie mit Scancode und Interrupt der Taste und readkey und Poll durchs Programm.

Laber Rhabarber... Wenn eine Taste gedrückt wird, sind die Werte der keyCode-Eigenschaft der Event-Objekte der durch den Tastendruck ausgelösten Keypress- und Keydown-Events selbstverständlich identisch.

Mathias

Opera-Bug beim Reagieren auf Enter ?

Der folgende Beitrag wurde am 01. 02. 2005, 14:23 Uhr von Tom veröffentlicht.

Hello,

> Laber Rhabarber... Wenn eine Taste gedrückt wird, sind die Werte der keyCode-Eigenschaft der Event-Objekte der durch den Tastendruck ausgelösten Keypress- und Keydown-Events selbstverständlich identisch.

Soso. Dann lös doch mal Kombinationstastendrücke aus *grins*

Harzliche Grüße aus http://www.annerschbarrich.de

Tom
--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau

Opera-Bug beim Reagieren auf Enter ?

Der folgende Beitrag wurde am 01. 02. 2005, 12:05 Uhr von molily veröffentlicht.

Hallo,

> > > Nein, das Folgende funktioniert nicht ...
>
> > > <textarea onKeyDown="if(event.keyCode==13) return false;"  name="meineArea" cols="20" rows="5"></textarea>

> Wahrscheinlich liegt es daran, dass onKeyPress früher feuert als onKeyDown.

Wie kommst du darauf? Der Keydown-Event wird selbstverständlich zuerst gefeuert, dann der Keypress-Event. Dass die Auswirkungen des Tastendrucks erst beim Keypress-Event verhindert werden können, erscheint mir logisch. Erst mit dem Keypress-Event wird bzw. würde ein Zeichen in das Eingabefeld geschrieben.

Mathias

Opera-Bug beim Reagieren auf Enter ?

Der folgende Beitrag wurde am 01. 02. 2005, 07:27 Uhr von Tom veröffentlicht.

Hello,

> Nein, das Folgende funktioniert nicht ...
>
> <textarea onKeyDown="if(event.keyCode==13) return false;"  name="meineArea" cols="20" rows="5"></textarea>
>
> ... denn der Umbruch kommt bei allen Browsern in der Textarea an.

Das liegt daran, dass event.keyCode==13 nur ein Vergleich mit einer "Speicherstelle" ist.
Die wird aber dadurch nicht verändert. Du kannst im IE aber 'was reinschreiben und dann ist der chr(13) plötzlich verschwunden. Sowas nennt sich dann "objektorientiert" *tztz* (da fällt mir doch glatt ein "Sicherheit im Netz" *hahah*)


Harzliche Grüße aus http://www.annerschbarrich.de

Tom
--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau

Opera-Bug beim Reagieren auf Enter ?

Der folgende Beitrag wurde am 01. 02. 2005, 11:40 Uhr von molily veröffentlicht.

Hallo,

> > Nein, das Folgende funktioniert nicht ...
> >
> > <textarea onKeyDown="if(event.keyCode==13) return false;"  name="meineArea" cols="20" rows="5"></textarea>
> >
> > ... denn der Umbruch kommt bei allen Browsern in der Textarea an.
>
> Das liegt daran, dass event.keyCode==13 nur ein Vergleich mit einer "Speicherstelle" ist.

Wie bitte? Was bedeutet das?

Mathias

Opera-Bug beim Reagieren auf Enter ?

Der folgende Beitrag wurde am 01. 02. 2005, 11:58 Uhr von molily veröffentlicht.

Hallo,

> <textarea onKeyPress="if(event.keyCode==13) return false;"  name="meineArea" cols="20" rows="5"></textarea>
>
> Warum der Zeilenumbruch aber in Opera7.54 auch mit dem onKeyPress-Event nicht unterdrückt wird, wüsste ich auch mal gerne.

Man kann sich darüber streiten, ob es ein Browser überhaupt zulassen soll, dass Tastatureingaben in Formularfelder schon beim Handlen der zugehörigen Events gesperrt werden können. In Opera 8 funktioniert zumindest das Abfangen von Tasten über den Keypress-Event.

Mathias

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4