Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Multiple Submit-Buttons

Empfohlene Antworten

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

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.

Hi,

also ich habe eigentlich viele Seiten in denen ich Formulare mit mehreren Submit Buttons habe, und dort funktioniert das auch mit dem IE...

Wie sieht denn dein Formular aus?

Gruß,

Markus

ich kann mich nur kills anschliessen, da muss was faul an

deinem formular sein, hab das schon 100mal auf die von

dir beschriebe art und weise gemacht...

poste mal deinen code

gruss

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

Ein Button muss anstatt


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

so heissen

<input type="submit" name="up" value="Up">

Das gilt natürlich für alle Buttons...

Gruß,

Markus

Muss nicht zwangsläufig.

Es gibt das button Element schließlich nicht umsonst :)

Aber um sein Problem zu lösen....

Aber um sein Problem zu lösen....

Kaum zu glauben, aber das war tatsächlich das Problem.

Da wäre ich nie selbst drauf gekommen.

Ich bedanke mich recht herzlich.

Gruß

Headache

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.