Sie auch verwenden können die JQuery One event.
Ich habe festgestellt, dass ich durch Doppelklick schnell die meisten Wächter gegen Doppelklicks überwinden konnte. Die Verwendung des einzigen Ereignisses ist die einzige Möglichkeit, sicherzustellen, dass das Ereignis nur einmal ausgelöst wird. Ich denke nicht, dass diese Technik "out of the box" mit einem Eingabe-Typ = submit-Tag funktionieren wird. Stattdessen können Sie einfach einen Eingabetyp = Schaltfläche oder JQueryUI's .button() verwenden.
$("#submitButton").one("click", function(event) {
$('#theForm').submit();
});
Wenn Sie das Ereignis auf einem Fehler bei der Überprüfung (oder einem anderen Umstand) neu zu verkabeln müssen, empfehle ich, dass Sie eine Funktion für die Ereignishandler erstellen. Die Funktion ist in diesem Beispiel nicht erforderlich, da der gesamte Event-Handler das Formular absendet, aber in komplizierteren Szenarien möchten Sie möglicherweise vermeiden, dass Sie sich wiederholen.
function submitClick(event) {
$('#theForm').submit();
}
$("#submitButton").one('click', function(event) {
submitClick(event);
});
// This handler will re-wire the event when the form is invalid.
$('#theForm').submit(function(event) {
if (!$(this).valid()) {
event.preventDefault();
$('#submitButton').one('click', function(event) { submitClick(event); });
}
});
Sie könnten natürlich die Deaktivierung Code hier hinzufügen, wenn Sie Rückmeldung an den Benutzer, dass die Taste nicht mehr funktioniert geben wollen. Ein großer Nebeneffekt der Verwendung des One-Ereignisses ist, dass Sie die Schaltfläche nicht deaktivieren müssen, Sie können einen eigenen Stil verwenden.
function submitClick(event) {
$('#submitButton').addClass('disabledButton');
$('#theForm').submit();
}
$("#submitButton").one('click', function(event) {
submitClick(event);
});
// This handler will re-wire the event when the form is invalid.
$('#theForm').submit(function(event) {
if (!$(this).valid()) {
event.preventDefault();
$('#submitButton').one('click', function(event) { submitClick(event); });
$('#submitButton').removeClass('disabledButton');
}
});
JQuery Ein Ereignis:http://api.jquery.com/one/
Großartig! Danke für die Info, das Verhalten wäre komplett mit diesem –
Ich versuche den Javascript-Code, aber ich bekomme einen Fehler in $ (this) .valid() -Funktion. Es besagt, dass es keine gültige() Funktion für das Objekt $ (this) gibt. – miguelbgouveia