Настройка async
на false
может работать, но это может полностью повесить браузер на 15 секунд.Лучше всего отключить элемент submit и предотвратить отправку другими способами, используя переменную, в которой хранится информация о том, выполняется ли проверка:
var validating = false;
$(function() {
$('form').submit(function() {
if(validating) return false;
var button = $(this).find('input:submit, input:button');
button.attr('disabled', 'disabled');
validating = true;
$.ajax({
url: 'validator.php',
data: $(this).serialize(),
success: function() {
validating = false;
button.removeAttr('disabled');
}
});
});
});
Таким образом, пользователь не может отправить форму любым другим способом.,Если вы отключите только кнопку отправки, возможно, будет возможно отправить форму с помощью клавиши ввода (не уверены в этом).Использование переменной, которая сообщает, выполняется ли проверка, является надежным способом предотвращения случайной отправки.