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?
Ich weiß, dass Sie Ihre Frage mit "javascript" getaggt, aber hier ist eine Lösung, die nicht auf javascript überhaupt abhängt:
Es ist ein Webapp-Muster namens PRG und hier ist ein guter Artikel das es beschreibt
Auf der Kundenseite Sie sollten die Schaltfläche "Submit" deaktivieren, sobald das Formular mit Javascript-Code wie der von @vanstee und @chaos bereitgestellten Methode übermittelt wurde.
Es gibt jedoch ein Problem bei Netzwerkverzögerungen oder bei deaktiviertem Javascript, bei dem man sich nicht auf das JS verlassen sollte, um dies zu verhindern.
Also, auf der Server-Seite Sie sollten die wiederholten Übermittlungen von denselben Kunden überprüfen und die wiederholten Übermittlungen, bei denen es sich offenbar um einen Fehlversuch des Benutzers handelt, auslassen.
Sie können versuchen Safeform Jquery-Plugin.
$('#example').safeform({
timeout: 5000, // disable form on 5 sec. after submit
submit: function(event) {
// put here validation and ajax stuff...
// no need to wait for timeout, re-enable the form ASAP
$(this).safeform('complete');
return false;
}
})
Für mich die einfachste und eleganteste Lösung:
function checkForm(form) // Submit button clicked
{
form.myButton.disabled = true;
form.myButton.value = "Please wait...";
return true;
}
<form method="POST" action="..." onsubmit="return checkForm(this);">
...
<input type="submit" name="myButton" value="Submit">
</form>
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.