繁体   English   中英

在提交时执行 ajax 验证

[英]performing ajax validation in onsubmit

我正在尝试在 web 表单的 submit() 处理程序中执行一些 AJAX 验证。 ajax 正在使用来自 jquery 的$.ajax()执行。 如果我使用async: false效果很好,但我会收到弃用通知,我只是假设有未来证明的代码。

所以我的问题是如何在没有async: false的情况下执行 AJAX 验证?

https://stackoverflow.com/a/9865124/569976推荐when() function。 我想知道如何将其用于我的目的。 我想我可以在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错误。

有任何想法吗?

在通过 Ajax 提交之前,您应该执行输入清理和验证。 因此,您可以在构造 Ajax 请求之前或在 beforeSend 事件中执行此操作...最好尽早进行,这样您就可以避免取消/中止构造的 Ajax 请求。

至于您的语法错误,我会查看 Promise.all 上的文档以了解它返回的类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM