У меня есть страница, которая проверяет правильность AJAX для электронной почты, прежде чем перейти к следующей странице, используя метод HTML5 setCustomValidity() [используя библиотеку webshims для более старых браузеров].
Для этого я установил для параметра async значение false в вызове $.ajax(), чтобы сделать его синхронным, заблокировав страницу до ответа AJAX, так как в противном случае форма отправляется перед возвратом вызова ajax, оказывая валидацию неэффективен.
<script>
function validateEmailRegistered(input) {
if (input.setCustomValidity === undefined) return;
var err = 'Email address not found';
$.ajax({
url: 'email-is-registered.php',
data: { email: input.value },
async: false,
success: function(data) {
var ok = data=='true';
input.setCustomValidity(ok ? '' : err)
}
});
}
</script>
<form method="get" action="nextpage.php">
<input name="email" id="email" type="email" required
onChange="validateEmailRegistered(this)">
<button type="submit">go</button>
<form>
Я вижу, что параметр async должен быть устаревшим как jQuery 1.8.
Как я могу достичь этого действия блокировки без опции async?