remopeter Geschrieben 8. Juni 2005 Teilen Geschrieben 8. Juni 2005 Hallo Ich möchte in einer Struts-Applikation verhindern, dass ein Form doppelt oder dreifach übermittelt wird. Gibt es da eine einfach Lösung für dieses Problem? Gruss, Remo Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Aiun Geschrieben 8. Juni 2005 Teilen Geschrieben 8. Juni 2005 warum wird es überhaupt mehrfach übermittelt ? wie sieht das script aus ? ..... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
remopeter Geschrieben 8. Juni 2005 Autor Teilen Geschrieben 8. Juni 2005 das Script sieht folgendermassen aus: submitCount=0; function submitter(form){ if(submitCount<1){ form.submit(); } submitCount++; } der aufruf so: <a href="JavaScript:if(validateStesBearbeitenForm(document.stesBearbeitenForm)) {document.stesBearbeitenForm.method.value='speichern';submitter(document.stesBearbeitenForm)}"> wenn man ganz schnell hintereinander auf den submit-buton klickt, wird das form 2 mal übermittelt. obwohl beim 2.mal die variable ja eigentlich schon >1 sein sollte und somit das submit nicht mehr durchgeführt werden sollte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 8. Juni 2005 Teilen Geschrieben 8. Juni 2005 Als Info: Mehrach submits sind nur mit dem IE möglich, andere Browser fangen das selbst ab. Gruß, Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 8. Juni 2005 Teilen Geschrieben 8. Juni 2005 Ich möchte in einer Struts-Applikation verhindern, dass ein Form doppelt oder dreifach übermittelt wird.Das hat mit Struts nix zu tun, ist pures HTML. Ich löse sowas immer so: <html> <head> <script type="text/javascript"> function disableSubmitButton(theButton) { theButton.value = "Wird gesendet..."; theButton.disabled = true; } </script> </head> ... <body> ... <input type="submit" onclick="disableSubmitButton(this)"> ... </body> </html> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
remopeter Geschrieben 8. Juni 2005 Autor Teilen Geschrieben 8. Juni 2005 Als Info: Mehrach submits sind nur mit dem IE möglich, andere Browser fangen das selbst ab. Gruß, Markus Tja, leider wird für die Applikation vorausgesetzt, dass der IE verwendet werden muss. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Aiun Geschrieben 8. Juni 2005 Teilen Geschrieben 8. Juni 2005 ein Tip noch am Rande "nie" Javascript-ifs o.ä. direkt in das HTML-Element. das führt je nach Browserversion zu ganz hässlichen Ergebnissen. (IE 5.5, Netscape... z.B.) wenn du ein IF oder mehrere Anweisungen hast, mach es auf jeden fall über eine Funktion. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 9. Juni 2005 Teilen Geschrieben 9. Juni 2005 Lass das Javascript weg und mach et vernünftig. Auf dem Server musst du das doppelte absenden sowieso überwachen. z.b. laufende Nummer ins Formular und merken wenn die gespeichert wird. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Aiun Geschrieben 10. Juni 2005 Teilen Geschrieben 10. Juni 2005 ob javascript oder nicht hat nix damit zu tun ob es vernünftig ist Wenn das JS den Button deaktiviert, dann verhindert es den Mehrfach-Submit. Wenn dann noch das JS das Submit ausführt und nicht der Button, verhinderst du auch mehrfach-submits bei usern ohne JS (was sowieso abgefangen sein sollte, wenn du JS benutzt) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
zirri Geschrieben 10. Juni 2005 Teilen Geschrieben 10. Juni 2005 ob javascript oder nicht hat nix damit zu tun ob es vernünftig ist Wenn das JS den Button deaktiviert, dann verhindert es den Mehrfach-Submit. Wenn dann noch das JS das Submit ausführt und nicht der Button, verhinderst du auch mehrfach-submits bei usern ohne JS (was sowieso abgefangen sein sollte, wenn du JS benutzt) user mit deaktiviertem JS koennen dann aber die form garnicht submitten !! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 10. Juni 2005 Teilen Geschrieben 10. Juni 2005 user mit deaktiviertem JS koennen dann aber die form garnicht submitten !!User mit deaktiviertem JavaScript können sowieso an vielen Dingen im WWW nicht "teilhaben". Man muss sich halt überlegen, was man will: So etwas ohne JavaScript zu machen erfordert einen höheren Aufwand, weil man sich um mehr Dinge Gedanken machen muss. Da bleibt es dann beim Kunden zu sagen, was er haben möchte, und wieviel Aufwand er für die Umsetzung investieren möchte. Eigentlich muss man das sowieso, denn sich auf Funktionalitäten beim Client zu verlassen ist immer riskant - richtig kann es nur auf dem Server gecheckt werden. So kann ich immer noch (wenn ich es denn wollen würde) mit einem simulierten Browser hingehen, die Felder per Hand ändern, und die gesamte Logik, die beim Client liegt, zerschießen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
remopeter Geschrieben 15. Juni 2005 Autor Teilen Geschrieben 15. Juni 2005 Hallo ich hab's nun so gelöst: <script language="JavaScript"> done=false; function disableLink(todo){ if(!done){ done=true; location=todo; } } </script> <a href="JavaScript:disableLink(document.stesSuchenForm.submit());"> Wenn ich nun mit der Maustaste schnell draufklicke, wird der submit nur einmal abgesetzt. komischerweise funktioniert das aber nicht wenn ich zweimal draufklicke mit einer maustaste auf der ein doppelklick abgelegt ist. da entwischt der submit zweimal. wieso? kann ich das irgendwie verhindern. nun habe ich das versucht serverseitig abzufangen. ich setze ein flag in die session solange der request am laufen ist. solange der request am laufen ist, wird ein allfälliger zweiter request nicht an den requestprozessor von struts weitergegeben. das bewirkt allerdings, dass beim client eine weisse seite angezeigt wird. gibt es eine serverseitige lösung? Gruss Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.