在表单同步提交后执行 js 吗?

Is js executed after form synchronized submit

本文关键字:js 执行 表单 同步 提交      更新时间:2023-09-26

我的代码如下:

form.submit();//synchronized submit, not asynchronous,the form is not a html form but created by javascript
some codes here;//Is this line executed, or it sometimes executed sometimes not

我在第二行有一些统计代码(向服务器发送http请求),并真正获得了一些数据。因为统计数据和预期之间存在很大差距,所以我怀疑第二行总是被执行。

这取决于表单在提交时的作用:

  • 如果表单正常提交,则代码可能会运行。普通表单提交会将浏览器重定向到操作属性中定义的 URL。代码可能会运行,但页面已经准备离开,因此您可能看不到form.submit()后的代码的作用。

  • 如果表单提交并被 JavaScript(可能由事件处理程序)捕获,则 form.submit() 之后的代码可以运行,但取决于该事件处理程序的作用。如果处理程序不阻止正常表单提交,则情况与第一个相同。如果处理程序阻止正常表单提交,则可以运行。

我建议您为该表单构建一个处理程序,以防止使用return false和/或event.preventDefault()等技术提交正常的表单,并且还要在其中运行代码。