Martin Müller: IE: 2 Aktionen für Formular

<td align='center'><button type='submit' name='aktion' value='decodieren'>decodieren</button></td>
<td align='center'>Wert: <input name='wert' size='2' maxlength='2' value='1' /><br>
<button type='submit' name='aktion' value='codieren'>codieren</button></td>

Das klappt mit allen Browsern, außer dem IE. Der IE übergibt dann sowas, wie "&aktion=decodieren&wert=1&aktion=codieren" und die Aktion decodieren funzt nicht.

Wie kann man das Problem lösen?

MM

  1. Hello out there!

    Das klappt mit allen Browsern, außer dem IE. Der IE übergibt dann sowas, wie "&aktion=decodieren&wert=1&aktion=codieren"

    Der Bug ist bekannt. Steht auch in http://de.selfhtml.org/html/formulare/formularbuttons.htm#modern

    Wie kann man das Problem lösen?

    input statt button verwenden.

    See ya up the road,
    Gunnar

    --
    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
    1. TNX!

      Das werde ich mal ausprobieren.

      MM

  2. echo $begrüßung;

    <button type='submit' name='aktion' value='decodieren'>decodieren</button>
    <button type='submit' name='aktion' value='codieren'>codieren</button>

    Das klappt mit allen Browsern, außer dem IE.

    Wenn du mal unterschiedliche Werte für das value-Attribut und den vom Button anzuzeigenden Inhalt verwendest, siehst du noch einen zweiten Fehler. Der IE überträgt nicht den "value"-Wert sondern den Inhalt.

    Wie kann man das Problem lösen?

    Ein Workaround verwendet Javascript um erst zum Klick-Zeitpunkt name und value zuzuweisen.
    <button type="submit" onclick="name='name';value='value'">...</button>

    echo "$verabschiedung $name";

    1. Wenn du mal unterschiedliche Werte für das value-Attribut und den vom Button anzuzeigenden Inhalt verwendest, siehst du noch einen zweiten Fehler. Der IE überträgt nicht den "value"-Wert sondern den Inhalt.

      Das ist der Grund, warum ich da die gleichen Werte verwende.

      MM

      1. echo $begrüßung;

        Wenn du mal unterschiedliche Werte für das value-Attribut und den vom Button anzuzeigenden Inhalt verwendest, siehst du noch einen zweiten Fehler. Der IE überträgt nicht den "value"-Wert sondern den Inhalt.

        Das ist der Grund, warum ich da die gleichen Werte verwende.

        Naja... in dem Fall verzichtest du auf den entscheidenden Vorteil und Haupt-Einsatzweck von <button> gegenüber <input type=button>. Der Sinn ist ja, dass man als Beschriftung quasi alles Mögliche an HTML-Code angeben kann. Doch diesen ganzen Kladderadatsch will man andererseits nicht im value stehen haben. Wenn du die Gestaltungsmöglichkeiten nicht benötigst, kannst du ruhig auf den Einsatz (und die IE-Fehler) von <button> verzichten.

        echo "$verabschiedung $name";