Rolf Rost: Enter Submit Form - Default?

Hallo Forumsgemeinde,

für mich immer noch ein Rätsel:

Welcher submit-button wird im default genommen wenn [enter] gedrückt wird?

Nehmen wir ein Beispiel: http://rolfrost.de/cgi-bin/julian.cgi

IE6 und Mozilla 1.7.11 verhalten sich so, dass, egal in welchem Eingabefeld ich was geändert habe und dann auf die [Enter] - Taste drücke, das submit in Richtung 'Date to JulianDay' erfolgt.

Wünschenswert evntl.:
Nachdem das Feld 'julianday' geschrieben wurde, sollte die [Enter] - Taste das submit in Richtung [<<] ('JulianDay to Date') machen.

Vielen Dank und Gruß,
Rolf

--
Wenn Du Dich mit dem Julianischen Kalender befasst,
bekommst Du ein Gespür für Jahrtausende.
Wenn Du Dich jedoch mit dem Maya Kalender beschäftigst,
spürst Du ein Gefühl der Unendlichkeit!
  1. Hallo Forumsgemeinde,

    für mich immer noch ein Rätsel:

    Welcher submit-button wird im default genommen wenn [enter] gedrückt wird?

    Soetwas wird von keiner Spezifikation definiert, außer XFORMS. Du kannst dich also nie darauf verlassen, und ich weiß daß das ärgerlich ist. Die einfachste Lösung: Nur ein Submit Button! Alles weitere mußt du mit Javascript machen.

    Grüße

    Heizer

    1. vielen Dank Heizer!

      Soetwas wird von keiner Spezifikation definiert, außer XFORMS. Du kannst dich also nie darauf verlassen, und ich weiß daß das ärgerlich ist. Die einfachste Lösung: Nur ein Submit Button! Alles weitere mußt du mit Javascript machen.

      Mit _einem Button_ => Die Idee ist gut. Werd das mal überschlafen.... wird Einiges an JS - Gewurschdl geben :)

      Viele Grüße, Rolf

      1. Mit _einem Button_ => Die Idee ist gut. Werd das mal überschlafen.... wird Einiges an JS - Gewurschdl geben :)

        Ich habe mir deine Seite nochmal angeschaut, und frage mich gerade, warum du nicht einfach zwei Formulare nimmst. Meines Wissen nimmt jeder Browser nur einen Submit-Button des aktuellen Formulars. Alles andere wäre irgendwie bizarr, aber ich habe das nicht wirklich getestet.

        Damit das mit dem Design nicht durcheinander kommt mußt du beide Formulare auf display:inline; stellen

        Grüße

        Heizer

    2. hallo Heizer und Kollegen,

      Soetwas wird von keiner Spezifikation definiert, außer XFORMS. Du kannst dich also nie darauf verlassen, und ich weiß daß das ärgerlich ist. Die einfachste Lösung: Nur ein Submit Button! Alles weitere mußt du mit Javascript machen.

      da ist mir noch was eingefallen:
      CGI::Ajax

      Prinzip:
      onKeyUp(*)
       => JavaScript => JSengine(browser) => CGI => Server => PERL

      retour

      PERL => Server => CGI => JSengine(browser) => Browser

      (*) steht für ein zu definierendes Eingabefeld.

      Damit gänge es auch. Muss jedoch mal darüber träumen, wie ich das ohne zusätzliche Module hinkriege.

      Viele Grüße, Rolf

  2. Hallo Rolf,

    für mich immer noch ein Rätsel:
    Welcher submit-button wird im default genommen wenn [enter] gedrückt wird?

    Soweit ich weiß, nehmen die meisten Browser dann den ersten Submit-Button, Opera aber den letzten. Festgelegt ist das leider nicht, so dass man nicht sagen könnte, dass einer von denen sich falsch verhält.

    Nehmen wir ein Beispiel: http://rolfrost.de/cgi-bin/julian.cgi
    IE6 und Mozilla 1.7.11 verhalten sich so, dass, egal in welchem Eingabefeld ich was geändert habe und dann auf die [Enter] - Taste drücke, das submit in Richtung 'Date to JulianDay' erfolgt.

    Oh - du befasst dich mit dem Julianischen Datum? Bist du auch Hobby-Astronom oder warum?

    Nachdem das Feld 'julianday' geschrieben wurde, sollte die [Enter] - Taste das submit in Richtung [<<] ('JulianDay to Date') machen.

    Klingt wohlüberlegt - aber wie Heizer schon schrieb, wirst du da wohl massiv mit JS nachhelfen müssen (Focus-Abfrage und gezieltes Auslösen eines Submit-Buttons). By the way, welchen Submit-Button löst eigentlich JS aus, wenn ich einfach form.submit() aufrufe?

    Schönen Abend noch,

    Martin

    --
    Die letzten Worte des Architekten:
    Mir fällt da gerade was ein...
    Schon Urlaubspläne für 2006?
    1. hi Martin,

      Oh - du befasst dich mit dem Julianischen Datum? Bist du auch Hobby-Astronom oder warum?

      11 ist meine Antwort :)

      Frage 1 ergibt: 1 - klar befasse ich mich mit dem JulianDay
      Frage 2 ergibt: 1 weil bereits die erste Bedingung (Frage 1 => 1) erfüllt ist.

      Mein Tipp für Entwickler:
      http://www.tondering.dk/claus/cal/node3.html

      Viele Grüße, Rolf

    2. Hallo Martin.

      Soweit ich weiß, nehmen die meisten Browser dann den ersten Submit-Button, Opera aber den letzten.

      Was ältere Versionen machen, kann ich momentan nicht sagen, aber meine Version 9TP1 wählt offenbar immer den dem aktuell fokussierten Formularelement am nächsten liegenden Submit-Button.

      Mein Opera tut also genau das, was Rolf möchte.

      Einen schönen Montag noch.

      Gruß, Ashura

      --
      Last Tears Keep Calling
      See Angels Falling
      Black Shadows In Your Head
      And One Eye For The Dead
      1. Moin Ashura,

        Mein Opera tut also genau das, was Rolf möchte.

        wenn ich einen Wunsch frei hätte, dan würde ich in diesem Satz gerne "Opera" und "Rolf" wahlfrei austauschen können. ;-)

        regds
        Mike©

        --
        Freunde kommen und gehen. Feinde sammeln sich an.
  3. Moin Rolf,

    für mich immer noch ein Rätsel:

    dto.

    Welcher submit-button wird im default genommen wenn [enter] gedrückt wird?

    IMHO gibt es Unterschiede zwischen <input type="submit..
    und
    <input type="button"...>

    Das wäre zu testen. AFAIK ist der default submit.

    regds
    Mike©

    --
    Freunde kommen und gehen. Feinde sammeln sich an.
  4. Ich habe hier mal eine kleine Testseite für default-submit-buttons gemacht. Im FF und Opera läuft alles wie erwartet, aber man beachte den IE, er ist doch immer wieder für eine Überraschung gut.

    Auf der Seite sind zwei Forulare, jedes hat fünf Buttons, davon 2 <input type="submit" />, 2 <button type="submit"></button> und einen <input type="button" />. Einfach in das input feld klicken und enter drücken, dann werden die felder, die übertragen wurden, grün.

    Viel spaß

    Heizer

    1. echo $begrüßung;

      Ich habe hier mal eine kleine Testseite für default-submit-buttons gemacht.

      Wie lautet die URL zu der Testseite?

      Im FF und Opera läuft alles wie erwartet, aber man beachte den IE, er ist doch immer wieder für eine Überraschung gut.

      Ich halte nach wie vor[1] das Verhalten des IE für richtiger.
      If a form contains more than one submit button, only the activated submit button is successful.
      Das ist leider die einzige Submit-Buttons betreffende Reglung und die lässt auch noch Interpretationsspielraum.
      Klar ist, dass nur einer erfolgreich sein kann und zwar der aktivierte. Aber wenn kein Button aktiviert wurde, weil das Formular unter Umgehung eines Buttons abgesendet wurde, dann ist eben kein name-value-Pärchen eines Buttons "successful" geworden. Um "den richtigen" Button zu definieren, der beim Absenden per Enter zu aktivieren wäre, fehlt ein "default"-Attribut.

      Auf einem ganz anderen Blatt steht das eklatante Fehlverhalten des IE wenn es um <button type="submit" name="name" value="value">Beschriftung</button> geht. Er sendet nicht name und value, wie es sich gehören würde, sondern name und Beschriftung, wobei Beschriftung ja auch HTML-Code sein kann. Und obendrein macht er das auch noch von allen Buttons, nicht nur von einen einzigen. (Hier kann man sich behelfen, wenn man name und value erst in einem onclick-Event setzt.)

      echo "$verabschiedung $name";

      [1] Dieses Thema ist nicht neu. Im Archiv sind einige Diskussionsrunden dazu zu finden.