【发布时间】:2020-07-19 07:35:49
【问题描述】:
我正在尝试在 web 表单的 submit() 处理程序中执行一些 AJAX 验证。 ajax 正在使用来自 jquery 的$.ajax() 执行。如果我使用async: false,它会很好用,但我会收到弃用通知,我只是假设代码是未来的证明。
所以我的问题是如何在没有async: false 的情况下执行 AJAX 验证?
https://stackoverflow.com/a/9865124/569976 推荐使用when() 函数。我想知道如何将其用于我的目的。我想我可以在when() 方法的done() 部分中将全局变量complete 设置为true,但是我怎么知道complete 何时设置为true?我想我可以setInterval 继续检查complete 的值,直到它最终为真,然后可以使用JS 提交表单,但idk 似乎不优雅。
https://stackoverflow.com/a/14038050/569976 提到了$.ajaxStop,但我认为这不是最佳做法。
我也试过这个(在$('...').submit(...) 方法中):
await Promise.all(function() {
return $.ajax(...);
})
这让我遇到了Uncaught SyntaxError: await is only valid in async function 错误。
有什么想法吗?
【问题讨论】:
标签: javascript jquery ajax async-await onsubmit