Wenn die Antwort langsam ist, kann es vorkommen, dass man mehrmals auf die Schaltfläche "Senden" klickt.
Wie kann man dies verhindern?
Wenn die Antwort langsam ist, kann es vorkommen, dass man mehrmals auf die Schaltfläche "Senden" klickt.
Wie kann man dies verhindern?
Erstellen Sie einen eindeutigen Bezeichner (z. B. die aktuelle Uhrzeit), und machen Sie ihn zu einer verborgenen Eingabe im Formular. Überprüfen Sie auf der Serverseite den eindeutigen Bezeichner jeder Formularübermittlung; wenn Sie diesen Hash bereits erhalten haben, handelt es sich um eine wiederholte Übermittlung. Die einzige Möglichkeit für den Benutzer, das Formular erneut einzureichen, besteht darin, die Formularseite neu zu laden.
edit: sich auf Javascript zu verlassen ist keine gute Idee, also könnt ihr alle weiter diese Ideen hochstimmen, aber einige Benutzer werden es nicht aktiviert haben. Die richtige Antwort ist, den Benutzereingaben auf der Serverseite nicht zu vertrauen.
Die einfachste Antwort auf diese Frage ist, dass sie gestellt wurde: "Wenn die Antwort langsam ist, kann es vorkommen, dass man mehrmals auf die Schaltfläche "Senden" klickt. Wie kann man das verhindern?"
Deaktivieren Sie einfach die Schaltfläche zum Absenden des Formulars, wie im folgenden Code.
<form ... onsubmit="buttonName.disabled=true; return true;">
<input type="submit" name="buttonName" value="Submit">
</form>
Dadurch wird die Schaltfläche "Absenden" beim ersten Klick zum Absenden deaktiviert. Auch wenn Sie einige Validierungsregeln haben, dann wird es gut funktionieren. Ich hoffe, es hilft Ihnen.
Deaktivieren Sie die Schaltfläche "Senden" kurz nach einem Klick. Stellen Sie sicher, dass Sie Validierungen richtig handhaben. Behalten Sie auch eine Zwischenseite für alle Verarbeitungen oder DB-Operationen und leiten Sie dann zur nächsten Seite weiter. Dadurch wird sichergestellt, dass das Aktualisieren der zweiten Seite nicht zu einer weiteren Verarbeitung führt.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.