Klaudia: wann bewirkt 'return' etwas und wann nicht?

Guten Morgen!

Ich hoffe, eine nicht allzu dumme Frage...

Bei einigen Eingabe-Formularen kann man mit betätigen der Return-Taste
eine Aktion hervorrufen, sprich das Formular abschicken. In einigen aber
auch wiederrum nicht.
Leider hab ich bisher noch nicht herrausfinden können, wie sich dies
beeinflussen lässt, also woran das liegt.

Kann man eventuell das Reagieren auf die 'Return'-Taste auch "umbiegen",
sodass anstelle dessen scheinbar die Tab-Taste gedrückt wurde?
(so wie es viele DOS-User gewohnt waren/sind).

Könnte man in diesem Sinne auch andere Tasten belegen? Z.B. die Ziffern 0-9?
Beim Drücken der Taste 1 wird dann eine Javascript-Funktion aufgerufen oder ein Link angesprungen.

Geht sowas???

Danke für Eure Antworten ...

Viele liebe Grüße,

Klaudia

  1. Hi Du,

    Bei einigen Eingabe-Formularen kann man mit betätigen der Return-Taste
    eine Aktion hervorrufen, sprich das Formular abschicken. In einigen aber
    auch wiederrum nicht.
    Leider hab ich bisher noch nicht herrausfinden können, wie sich dies
    beeinflussen lässt, also woran das liegt.

    Das funzt, wenn nur ein Input da ist.

    Kann man eventuell das Reagieren auf die 'Return'-Taste auch "umbiegen",
    [...]

    Die kannst im bzw. für das input-Element/Objekt einen Eventhandler installieren (z.B. onkeyup="...") und dann gucken, welche Taste denn losgelassen (also gedrückt) wurde, und abhängig davon (wenn es 13, also Return war) z.B. document.forms[N].submit() "per Hand" aufrufen, oder ...

    Könnte man in diesem Sinne auch andere Tasten belegen? Z.B. die Ziffern 0-9?
    Beim Drücken der Taste 1 wird dann eine Javascript-Funktion aufgerufen oder ein Link angesprungen.

    ... falls es sonstwasfürne Taste ist, per focus() den Focus z.B. auf ein beliebiges Input Element setzen (das dann aber auch wieder 'nen Handler zum Checken und Reagieren haben muss).

    Funzt also alles prima.

    Mirko

    1. Hi,

      Bei einigen Eingabe-Formularen kann man mit betätigen der Return-Taste
      eine Aktion hervorrufen, sprich das Formular abschicken. In einigen aber
      auch wiederrum nicht.
      Leider hab ich bisher noch nicht herrausfinden können, wie sich dies
      beeinflussen lässt, also woran das liegt.
      Das funzt, wenn nur ein Input da ist.

      Imho nicht richtig. Ich habe hier einige selbsterstellt Formulare, die 1 oder mehrere Inputfelder haben und bei denen eine davon abhängige Regelmäßigkeit in Bezug auf das Ereignis nach dem Return-Drücken nicht ersichtlich ist. (Gott war das ein Satz *g*)
      Auf jedem Fall, um auf den Punkt zu kommen. Es hängt davon ab, ob Du einen Submit Button hast. Wenn ja, dann wird Enter als Bestätigung dieses Buttons gesehen. Solltest Du nur einen Button haben ("type='button' und nicht type='submit'"), der z.B. erst noch ein JavaScript durchläuft, bevor er das Formular abschickt, findet das Formular beim Return-Drücken kein Submit-Button und schickt es deshalb nicht ab.

      Ciao
      JankoW

      1. Hi,

        Es hängt davon ab, ob Du einen Submit Button hast. Wenn ja, dann wird Enter als Bestätigung dieses Buttons gesehen.

        Scheint aber auch nicht immer zu funktionieren.
        Habe testhalber mal ein <input type=submit value=test> eingefügt und trotzdem wird das Formular nicht
        beim Drücken der Enter-Taste verlassen.

        Scheint also nicht daran zu liegen, ob es ein oder mehrere Formulare gibt und ob ein Submit existiert.

        Gruß,

        Klaudia

      2. Hi!

        Auf jedem Fall, um auf den Punkt zu kommen. Es hängt davon ab, ob Du einen Submit Button hast. Wenn ja, dann wird Enter als Bestätigung dieses Buttons gesehen. Solltest Du nur einen Button haben ("type='button' und nicht type='submit'"), der z.B. erst noch ein JavaScript durchläuft, bevor er das Formular abschickt, findet das Formular beim Return-Drücken kein Submit-Button und schickt es deshalb nicht ab.

        Ich schaetze mal, das wird so fuer den IE stimmen, weil der die Windows-Dialogfenster simulieren will. Richtig ist (waere) aber tatsaechlich, dass bei nur einem vorhandenen Eingabefeld das Formular mit Enter abgeschickt werden kann (koennen sollte), bei mehreren jedoch nicht mehr. Nach meiner Erfahrung handlet Netscape das auch so, aber da koennte ich mich irren.

        Leider finde ich jetzt die entsprechende Stelle in der HTML spec nicht. Es erscheint mir jedenfalls logisch, das oben gesagtes nur gilt, wenn es *genau* einen Submit-Button gibt. (Normaler Button reicht nicht, denn woher soll der Browser wissen, was dann zu tun ist.)

        So long

        1. Hi!

          Ich schaetze mal, das wird so fuer den IE stimmen, weil der die Windows-Dialogfenster simulieren will. Richtig ist (waere) aber tatsaechlich, dass bei nur einem vorhandenen Eingabefeld das Formular mit Enter abgeschickt werden kann (koennen sollte), bei mehreren jedoch nicht mehr. Nach meiner Erfahrung handlet Netscape das auch so, aber da koennte ich mich irren.

          Ok, also genauer gesagt: Im NN nur, wenn 1 (Text)-Input da ist, bei IE können's auch mehrere sein.

          Außerdem empfiehlt es sich wegen/für den NN4, so habe ich grade rausgefunden, den Handler für die Inputs von ganz außen zu installieren (also am besteb unmittelbar vor </body>). Mit anderen Worten also:

          ...
          <script>
          document.forms[NAMEbzwNUMMER].INPUTNAME.onIRGENDWAS = FUNCTION;
          </script>

          </body>
          </html>

          Also, nochmal als Hinweis an die Fragenstellerin: Du musst für jedes Element, das reagieren können soll, extra 'nen Handler installieren. Beim NN (zumindest 4, 6 weiß ich nicht) gibt's nämlich dieses Eventbubblingskrams (Hochreichen von Events an Handler höherer/äußerer Elemente) _nicht_.

          Mirko

    2. Hallo!

      Die kannst im bzw. für das input-Element/Objekt einen Eventhandler installieren (z.B. onkeyup="...") und dann gucken, welche Taste denn losgelassen (also gedrückt) wurde, und abhängig davon (wenn es 13, also Return war) z.B. document.forms[N].submit() "per Hand" aufrufen, oder ...

      Ich hab's mal probiert, mir anzeigen zu lassen, welche Taste gedrückt wird.
      (In der Statuszeile, wie im Selfhtml vorgegeben).
      Funktioniert einwandfrei solange ich nicht in einem Inputfeld bin.

      Und onkeyup-Geschichten innerhalb des input-tags funktioniert wohl nur mit dem IE (laut Selfhtml).

      Wie kann ich denn eine "reagiere bei Taste XY mit focus() oder submit()"
      in einen imput-tag implementieren? Sollte unbedingt mit Netscape laufen.

      Mit fragendem Gruß,

      Klaudia