Hallo,
Das name-value-Pärchen eines nicht gedrückten Buttons mitzusenden halte ich für einen Fehler. Der IE sendet dieses nur, wenn der Button auch tatsächlich geklickt wurde.
das ist entweder falsch oder nicht immer zutreffend. Zu diesem Thema habe ich nämlich selbst schon Versuche gemacht. Solange das Formular nur einen Submit-Button hat, senden IE & FF auch beim Absenden per Enter-Taste immer das name- und das value-Attribut dieses Buttons mit. So jedenfalls war es bei meinen eigenen Tests.
Veraussetzung ist natürlich, dass zum Zeitpunkt des Absendens ein anderes Formularelement den Fokus hat, das die Enter-Taste nicht selbst auswertet. Der häufigste Fall ist wahrscheinlich, dass der Cursor noch in einem Textfeld (<input type="text">) steht, ein Textfeld also den Focus hat.
Übrigens: Diese Versuche hatte ich seinerzeit mit FF 1.0.4 und IE 5.5 SP2 durchgeführt.
"If a form contains more than one submit button, only the activated submit button is successful."
Um Missverständnisse zu vermeiden, würde ich hier mal "activated" übersetzen als "betätigt".
Dieser Satz legt leider auch nicht fest, was bei nur einem Submit-Button, der nicht aktiviert wurde, passieren soll.
Stimmt. Aber den Fall gibt es im IE auch nicht. Für ihn ist in einem Formular immer genau ein Submit-Button vorausgewählt (erkennbar am dick gezeichneten Rand). Der IE imitiert hier mit den Formularelementen genau das Verhalten von Windows in Dialogfenstern, in denen auch zwei Tasten fest einer bestimmten Funktion zugeordnet sind: Die Enter-Taste "drückt" den als Default markierten Button, und die Esc-Taste erzeugt ein "Cancel"-Event. In einem Formular im IE werden diese beiden Tasten auf "Submit" und "Reset" abgebildet.
Soweit ich feststellen konnte, wird der Submit-Button nur dann nicht mitgesendet, wenn er deaktiviert wurde oder das Formular mit Javascript über die submit()-Methode abgesendet wurde.
So long,
Martin