Ich habe ein Formular, das einen Absenden-Button hat. Wenn ich diese Schaltfläche zum Senden klicken Sie dann JSON an einen Webdienst über AJAX geschrieben werden:Verhindern doppelte Vorschreibungen Formular
$("#msform").submit(function (e) {
$.ajax({
url: 'https://example.com/webservice',
type: 'POST',
data: formData1,
crossDomain: true,
dataType: 'json',
jsonpCallback: 'callback',
success: function (data) {
console.log(data);
}
});
});
Die Webseite wird auch auf eine andere Seite laden und gehen .. Während der Benutzer das Laden mehrere Male auf dem Absenden klicken können Taste, wenn Das macht er dann mehrmals für die AJAX-Post zum Webservice.
habe ich versucht, diesen Code dieses Problem zu beheben, aber es funktioniert nicht:
// jQuery plugin to prevent double submission of forms
jQuery.fn.preventDoubleSubmission = function() {
$(this).on('submit', function (e) {
var $form = $(this);
if ($form.data('submitted') === true) {
// Previously submitted - don't submit again
e.preventDefault();
} else {
// Mark it so that the next submit can be ignored
$form.data('submitted', true);
}
});
// Keep chainability
return this;
};
$('#msform').preventDoubleSubmission();
Jede Idee, warum doppelte Buchung nicht verhindert wird ??
Das Submit-Element deaktivieren? Dies verhindert, dass es erneut angeklickt wird und ist ein visueller Hinweis für den Benutzer, dass etwas passiert. –