在表单同步提交后执行js

时间:2012-08-14 01:47:44

标签: javascript forms submit

我的代码如下:

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

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

1 个答案:

答案 0 :(得分:4)

这取决于表单提交时的内容:

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

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

我建议你为该表单构建一个处理程序,阻止使用return false和/或event.preventDefault()之类的技术提交正常的表单,并在那里运行代码。