【问题标题】:performing ajax validation in onsubmit在 onsubmit 中执行 ajax 验证
【发布时间】: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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-04-01
      • 2014-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多