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

时间:2015-01-31 16:18:09

标签: javascript html forms asynchronous

愚蠢我无法找到这个,所以如果我有重复的话,我会事先道歉,但我已经通过搜索引擎查看并且没有找到我需要的东西。

在用户点击后提交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都可以自己正常工作。 function2可以整天返回false,但表单仍然提交。我该怎么办?同步时间似乎没有问题,但不知何故返回false并没有回到FORM元素。

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

1 个答案:

答案 0 :(得分:3)

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

然后在function2()中,如果表单验证成功,则可以调用

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

执行实际的表单提交。