planlos: Entertaste in Formular / Textarea unterschiedlich behandeln

Hallo ich habe folgendes Problem:

Ich habe ein Formular mit verschiedenen Inputfeldern. Einige der Inputfelder dienen als Buttons um neue Seiten zu öffenen, andere als Eingabefelder. (Das Formular soll sich "der Übersicht halber" über mehrer Seiten erstrecken, auch wenn das weis Gott nicht toll ist.)

Also habe ich eine Formular um alle Inputfelder gelegt.

So weit so gut. Wenn ich aber nun in diesen "Bereich" klicke und "Enter" drücke, wir automatisch immer das erste Inputfeld mit dem type="submit" ausgeführt und das Formular gesendet.

Um das zu vermeiden habe ich ein Skript onkeypress="return noenter()" eingebaut, das einfach False zurück gibt wenn die Eingabe "Enter" ist. Das Formular wird nur noch gesendet wenn man wirklich auf einen Input-button Klickt.

Bis hier immer noch .... zumindest ok.

Nun das wirkliche Problem: In dem Formular befinden sich auch Textareas, die natürlich bei Eingabe der Entertaste einen Zeilenumbruch machen sollen... aber die Entertaste hab ich ja raus genommen!

Ich konnte bisher keine Möglichkeit finden z.B. den Focus im Formular abzufragen und so die Enter-Taste in Textareas zuzulassen.

Jemand eine Idee wie ich das ganze lösen könnte? Formular nur Absenden wenn Input-Button geklickt wird, aber Zeilenumbruch in Textarea muss noch Funktionieren.

function noenter() {
  if (window.event && window.event.keyCode == 13)
    return false;
  else
    return true;}

..Seite mit Tabellenaufbau..
<form method="post" onkeypress="return noenter()">
..ganz viel Tabelle und Eingabefelder..

<input class="Navbutton" type="submit" name="onInputProcessing(Angaben)" value="Personendaten" title="Personendaten">

..ganz viel Tabelle und Eingabefelder..

<td style="text-align: center;" ><textarea cols="30" rows="5" name="test"></textarea></td>

..ganz viel Tabelle und Eingabefelder..

</form>

(Randnotiz für alle die meine Navigation nicht verstehen: Bei einem Submit wird das ganze Formular von einem übergeordneten Programm abgegriffen und durch den name="onInputProcessing(Angaben)" erfolgt die Weiterleitung mit bestimmten weiteren Daten. Das sollte aber für die Problemstellung nicht relevant sein.)

  1. hi,

    Bis hier immer noch .... zumindest ok.

    Nein, m.E. nicht.

    Du versuchst hier "Probleme" unerfahrener Anwender zu lösen - und brichst damit mit dem Bedienkonzept, welches der Rest der Welt kennt und auch _erwartet_.

    Schulung der Anwender, die immer noch nicht in der Lage sind, ein HTML-Formular zu bedienen, wäre m.E. der bessere Ansatz.

    Nun das wirkliche Problem: In dem Formular befinden sich auch Textareas, die natürlich bei Eingabe der Entertaste einen Zeilenumbruch machen sollen... aber die Entertaste hab ich ja raus genommen!

    Du brauchst doch einfach nur diesen _keinen_ onkeypress-Handler zu verpassen ...

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. hi,

      Bis hier immer noch .... zumindest ok.

      Nein, m.E. nicht.

      Du versuchst hier "Probleme" unerfahrener Anwender zu lösen - und brichst damit mit dem Bedienkonzept, welches der Rest der Welt kennt und auch _erwartet_.

      Schulung der Anwender, die immer noch nicht in der Lage sind, ein HTML-Formular zu bedienen, wäre m.E. der bessere Ansatz.

      Du hast echt, es sein den §1 tritt in Kraft: Was der Kunde das nicht will, nimmt er das auch nicht.

      Nun das wirkliche Problem: In dem Formular befinden sich auch Textareas, die natürlich bei Eingabe der Entertaste einen Zeilenumbruch machen sollen... aber die Entertaste hab ich ja raus genommen!

      Du brauchst doch einfach nur diesen _keinen_ onkeypress-Handler zu verpassen ...

      Der onkeypress-Handler befindet sich im gesammten Formular, da ich ihn ansonsten an jedes Element hängen müste.... Das geht natürlich auch, aber eine elegantere Lösung wäre mir irgendwie lieber.

      gruß,
      wahsaga

      1. Moin!

        Der onkeypress-Handler befindet sich im gesammten Formular, da ich ihn ansonsten an jedes Element hängen müste.... Das geht natürlich auch, aber eine elegantere Lösung wäre mir irgendwie lieber.

        Hänge den Handler onload an alle Formularelemente, die das brauchen. Das ist superelegant.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."