Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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.

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben
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

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...