Вы также можете использовать событие JQuery One .
Я обнаружил, что могу быстро обойти большинство охранников от двойных щелчков.Использование одного события - единственный верный способ убедиться, что событие запускается только один раз.Я не думаю, что этот метод будет работать "из коробки" с тегом input type = submit.Вместо этого вы можете просто использовать кнопку ввода type = button или .button () * JQueryUI *) .
$("#submitButton").one("click", function(event) {
$('#theForm').submit();
});
Если вам нужно повторно подключить событие кошибка проверки (или другое обстоятельство), я рекомендую вам создать функцию для обработчика событий.В этом примере функция не обязательна, поскольку все, что делает обработчик событий, - это отправка формы, но в более сложных сценариях вы можете избежать повторения.
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); });
}
});
Очевидно, вы можете добавить сюда код отключенияесли вы хотите дать отзыв пользователю, что кнопка больше не работает.Одним из замечательных побочных эффектов использования события One является то, что вам не нужно отключать кнопку, вы можете использовать собственный стиль.
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 One Event: http://api.jquery.com/one/