Zum Inhalt springen

Multiple Submit-Buttons


Headache

Empfohlene Beiträge

Gerade eben ist mir ein sonderliches Verhalten des IEs sauer aufgestoßen. Vielleicht kanns mir jemand erklären oder sagen, wie ich's umgehen kann.

Auf einer Seite habe ich ein Formular, mit dem sich ein Einträge für's Routing in einer Liste modifizieren lassen. Für jede Aktion (Add, Modify, Delete, Up, Down, Save, Reset) habe ich einen Submit-Button angelegt. Z.B. für Add:

<button type="submit" name="add" value="Add">Add</button>

Wie gesagt, es gibt 7 Stück von den Dingern. Wenn ich einen Drücke, dann wird das Formular submitted und die Werte der Formularfelder per Post übertragen. In meinem CGI (C Programm) sammle ich die Werte ein und prüfe, welcher Button gedrückt wurde. Laut gängiger Literatur ist das auch ein probater Weg. Während das aber im Firefox prima klappt (dort kommt nur für den gedrückten Button ein Wert an) verweigert der IE die zusammenarbeit (dort kommen alle Buttons an, sowohl mit Name als auch mit Wert).

Ich weiß zwar, dass ich das Problem umgehen könnte, indem ich aus den Submit-Buttons eine Click-Buttons machen kann, die jeweils ein hidden field füllen und anschließend das Formular submitten, so dass ich im CGI das hidden field auswerten könnte. Aber viel lieber wüsste ich, warum sich der IE so seltsam verhält. Muss für den IE noch irgendwo ein Flag im Formular gesetzt werden oder sowas?

Besten Dank im Voraus

Headache

Link zu diesem Kommentar
Auf anderen Seiten teilen

versuche nicht zu verstehen warum manche Dinge im IE nicht richtig funktionieren.

Das ist als würde man Fragen warum ein Rotes Auto Rot ist, na weils irgendwer angemalt hat und irgendwem die Farbe gefällt.

Es gibt viele Dinge die da nicht richtig funktionieren....

Im zweifelsfall sind Radiobuttons die beste alternative, denke ich.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dachte mir schon, dass es wohl an meinem Code liegt. Der sieht (auszugsweise) wie folgt aus:

<form action="/cgi-bin/mcb.cgi" onsubmit="return CheckForm();" method="post">

  <input type="hidden" name="page" value="vpn_upscript" />

  <input type="hidden" name="vpn_route_selected" value="" />

  <input type="hidden" name="leaving_by_submit" value="" />

  <input type="hidden" name="reloaded" value="" />

  <input type="hidden" name="changed" value="" />

  <table border="0" width="100%" cellspacing="0">

    <tr class="grau">

      <td>Destination:</td><td><input type="text" name="vpn_route_dest" value="" /></td>

    </tr>

    <tr>

      <td>Netmask:</td><td><input type="text" name="vpn_route_mask" value="" /></td>

    </tr>

  </table>

  <table border="0" width="100%" cellspacing="0">

    <tr class="grau">

      <td>

        <select name="vpn_routes" size="20" onChange="Go(this.form.vpn_routes.options[this.form.vpn_routes.options.selectedIndex].value)">

          <option value="10.140.0.0#255.255.0.0">Route destination: 10.140.0.0 netmask: 255.255.0.0</option>

          <option value="10.150.0.0#255.255.0.0">Route destination: 10.150.0.0 netmask: 255.255.0.0</option>

        </select>

      </td>

      <td>

        <table border="0" width="100%" cellspacing="0">

          <tr>

            <td><button type="submit" name="add" value="Add">Add</button></td>

          </tr>

          <tr>

            <td><button type="submit" name="modify" value="Modify">Modify</button></td>

          </tr>

          <tr>

            <td><button type="submit" name="delete" value="Delete">Delete</button></td>

          </tr>

          <tr>

            <td><button type="submit" name="up" value="Up">Up</button></td>

          </tr>

          <tr>

            <td><button type="submit" name="down" value="Down">Down</button></td>

          </tr>

        </table>

      </td>

    </tr>

  </table>

  <table border="0" width="100%" cellspacing="0">

    <tr>

      <td style="text-align:center"><button type="submit" name="save" value="Save">Save</button></td>

      <td style="text-align:center"><button type="submit" name="reset" value="Reset">Reset</button></td>

    </tr>

  </table>

</form>

Die Funktion CheckForm() setzt nur ein Flag in einem hidden field und sieht wie folgt aus:
function CheckForm ()

{

  document.getElementsByName ( "leaving_by_submit" ) [ 0 ].value = "true";

  return true;

};
Die Funktion Go() sorgt dafür, dass beim Wechseln der Selektion die Destination IP sowie die Netmask in die Felder vpn_route_dest und vpn_route_mask geschrieben wird:
function Go ( x )

{

  var Input = x;

  var Parts = Input.split ( "#" );

  var Destination = Parts [ 0 ];

  var Netmask = Parts [ 1 ];

  document.getElementsByName ( "vpn_route_dest" ) [ 0 ].value = Destination;

  document.getElementsByName ( "vpn_route_mask" ) [ 0 ].value = Netmask;


  document.getElementsByName ( "vpn_route_selected" ) [ 0 ].value = Input;

};

Gruß, Headache

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...