Seite 1 von 1
Verhinderung von Mehrfachklicks
Verfasst: 04.10.2006 15:18
von wksys
Wenn der Server, auf dem sich phpBB befindet. langsam (oder überlastet) ist, kommt es vor, daß man nicht sofort auf der Stelle eine Reaktion erkennt, wenn man (z.B. nach dem Schreiben einer message) auf „Absenden” klickt.
Unerfahrene Benutzer klicken dann mehrfach auf „Absenden”, mit dem Resultat, daß die message mehrfach gespeichert wird.
(Erfahrene Benutzer sehen in der Statuszeile des Browsers, ob sich etwas tut).
Gibt es einen Weg, derartige Mehrfachklicks zu unterbinden ?
Verfasst: 04.10.2006 15:43
von S2B
Du könntest beim Klicken des Buttons den Button mit JavaScript deaktivieren, wie das geht kannst du bei
SelfHTML nachlesen.
Verfasst: 04.10.2006 15:52
von Olli Oberhausen
Wenn du das zu deinem Submit button hihzufügst, hast du wenigstens schon mal ne warnmeldung...
Olli
Verfasst: 05.10.2006 00:07
von Banger
Olli_Moers hat geschrieben:Wenn du das zu deinem Submit button hihzufügst, hast du wenigstens schon mal ne warnmeldung...
...und so wird der Button auch noch deaktiviert, also zumindest bei aktiviertem JavaScript ein doppeltes Absenden verhindert:
Code: Alles auswählen
onclick="this.value='Bitte warten.'; this.disabled=true;"
Verfasst: 05.10.2006 15:55
von easygo
Ok deaktiviert schon und dann? Der Event-Handler onsubmit startet nicht vor onclick
und beim Posten passiert dann irgendwie nix.

easy
Verfasst: 05.10.2006 17:11
von Banger
easygo hat geschrieben:Ok deaktiviert schon und dann? Der Event-Handler onsubmit startet nicht vor onclick
und beim Posten passiert dann irgendwie nix.

easy
Stimmt... aber so sollte es weitergehen:
Code: Alles auswählen
onclick="this.value='Bitte warten.'; this.disabled=true; return true;"
Wird natürlich dann haarig, wenn die per onsubmit aufgerufenen Funktion 'nen Abbruch produziert - also sollte man in solch einem Fall die Deaktivierung des Submit-Buttons auch dort unterbringen.
Verfasst: 05.10.2006 18:03
von easygo
Banger hat geschrieben:Stimmt... aber so sollte es weitergehen:
Code: Alles auswählen
onclick="this.value='Bitte warten.'; this.disabled=true; return true;"
Alles schon durchprobiert, das will einfach nicht bei mir. Die Funktion checkForm()
braucht ein return true; kriegt aber keins und darum auch keine Aktion.
Hab mal die var formObj definiert, um die 2 auskommentierten Zeilen zu reaktivieren.
//formObj.preview.disabled = true;
//formObj.submit.disabled = true;
Blos dann kommt -> preview/submit ist Null oder kein Objekt usw.
EDIT: Hier gibts ne Lösung, die funktioniert -->
http://www.phpbb.com/phpBB/viewtopic.php?t=201507
Verfasst: 15.10.2006 20:24
von mgutt
Ich hab zufällig auch eine Version dazu geschrieben:
http://www.phpbb.de/viewtopic.php?t=133380
Meine Version berücksichtigt beide Buttons, wobei ich die privmsg noch einbinden muss. Folgt aber
Gruß
Verfasst: 16.10.2006 13:55
von Banger
Ganz am Rande: phpBB bringt eigentlich schon Bordmittel mit, die Mehrfachpostings ausschließen: man muss nur das Flood-Intervall dementsprechend einrichten. 30 Sekunden haben sich bei guitarworld.de als praktikabel erwiesen.
Verfasst: 16.10.2006 14:48
von mgutt
30 Sekunden ist nervig und wenn Du den 1. Post gelesen hast, weißt Du warum es trotzdem nichts bringt. Bei mir ist es genauso. Wenn der Server mal länger lädt geht es los mit Doubleposts.
So ein Addon ist schon was feines. Nicht umsonst bereits standardmäßig angedacht gewesen das ganze
Gruß