Headache Geschrieben 5. Juli 2005 Geschrieben 5. Juli 2005 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 Zitieren
Aiun Geschrieben 6. Juli 2005 Geschrieben 6. Juli 2005 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. Zitieren
kills Geschrieben 6. Juli 2005 Geschrieben 6. Juli 2005 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 Zitieren
zirri Geschrieben 6. Juli 2005 Geschrieben 6. Juli 2005 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 Zitieren
Headache Geschrieben 6. Juli 2005 Autor Geschrieben 6. Juli 2005 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 Zitieren
kills Geschrieben 6. Juli 2005 Geschrieben 6. Juli 2005 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 Zitieren
perdian Geschrieben 6. Juli 2005 Geschrieben 6. Juli 2005 Ein Button muss anstatt [...] so heissenMuss nicht zwangsläufig. Es gibt das button Element schließlich nicht umsonst Zitieren
kills Geschrieben 6. Juli 2005 Geschrieben 6. Juli 2005 Muss nicht zwangsläufig. Es gibt das button Element schließlich nicht umsonst Aber um sein Problem zu lösen.... Zitieren
Headache Geschrieben 6. Juli 2005 Autor Geschrieben 6. Juli 2005 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 Zitieren
Empfohlene Beiträge
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.