异步数据加载后提交HTML表单的正确方法是什么

What is the proper way to submit HTML form after asynchronous data load?

本文关键字:方法 是什么 表单 HTML 数据 加载 提交 异步      更新时间:2023-09-26

愚蠢的是我找不到这个,所以如果我重复了,我提前道歉,但我浏览了搜索引擎和SO没有找到我需要的东西。

在用户单击时提交 HTML 表单的正确方法是什么,但只有在我从第三方 API 异步加载数据以填写表单的某些隐藏字段之后?

我尝试了这种结构,但没有奏效:

form onclick = function1()
function1() calls function apicall that retrieves info from 3rd party api and in its completion handler then calls function2
function2 checks all form fields and returns true if form should be submitted, false if it should not

使用这种结构,我的表单总是被提交,尽管第三方 api 函数完成处理程序和 function2 都可以自行正常工作。 函数 2 可以整天返回 false,但表单仍然提交。我能做些什么呢?非同步时间似乎没问题,但不知何故,返回 false 没有回到 FORM 元素。

感谢您提供任何提示或代码示例。

异步函数不能返回任何内容 - 调用方不会等待它们完成。因此,表单的onsubmit处理程序应return false以防止表单提交。

那么在function2()中,如果表单验证成功,它可以调用

document.getElementById('formID').submit();

执行实际的表单提交。