Ранее я задавал связанный вопрос , но теперь на вопрос, на который мне нужно ответить, похоже, произошла некоторая особая касательная, поэтому я подумал, что было бы лучше задать новый вопрос.
Я пытаюсь предотвратить отправку формы, пока все вызовы ajax на странице не будут успешно возвращены.
У меня есть простой тест для этого (добавьте 1 к счетчику при запуске вызова, вычтите 1 в случае успеха).
Я верю, что должен уметь:
// can we submit yet?
$('#checkoutform').submit(function() {
if (ajaxcallcounter == 0) {
return true;
}
return false;
});
для предотвращения отправки формы до тех пор, пока счетчик не достигнет нуля (все вызовы завершены), но по некоторым причинам это не кажется эффективным на 100%.
Я не знаю, красная ли это сельдь, но во всех отчетах клиентов, которым удалось проверить до завершения звонков, использовался Mac Safari (хотя это может быть просто совпадением)
Вы можете увидеть код в действии здесь - попробуйте изменить страну доставки, чтобы отключить некоторые вызовы ajax. Кнопка отправки в правом нижнем углу должна быть отключена, если счетчик> 0.