Zum Inhalt springen

Mehrfaches Submit verhindern


remopeter

Empfohlene Beiträge

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

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