表单提交时,点击功能的顺序并提交

时间:2012-06-19 09:01:22

标签: javascript html

关于点击并提交 以下示例:

<form action="url" method="post">
<input type="text" id="input1"/>
<input type="submit" value="submit" onclick="testFun()"/>
</form>

如果有可能在我们点击提交按钮后提交表单提交后运行testFun函数

如果答案是否定的。 为什么?单击提交按钮时浏览器如何工作?订单是点击功能 - &gt;提交?是对的吗?

5 个答案:

答案 0 :(得分:2)

在表单提交后,你不能执行一个函数 - 执行的顺序如下:

  • 用户点击提交按钮
  • 执行onclick功能
  • 浏览器将页面提交到
  • 形式的操作中指定的url

您可以通过从onclick处理程序返回false来阻止浏览器提交页面:

function myfunc() {
  // do some stuff
  return false;
}

然后应该像这样修改提交按钮:

<input type="submit" onclick="return myfunc()"/>

如果你希望在提交表单后执行一个函数,你需要使用AJAX提交表单 - 这不会导致浏览器离开页面,并且在表单提交后可以执行JavaScript函数

答案 1 :(得分:1)

这是不可能的,因为表单的action会将浏览器重定向到该网址。

1选项是在testFun() action页面上运行url,但这可能无法实现,具体取决于该功能的作用。

如果您要发布有关您在这里尝试做什么的更多信息,那么它可能会有所帮助。

答案 2 :(得分:1)

不,但testFun可能(反过来)调用另一个异步函数,该函数在表单提交之前不会运行(此时它将不会运行,因为浏览器将离开页)。

答案 3 :(得分:0)

不可能,提交后你不在当前页面的范围内。但是,如果您使用iframe进行表单提交并在父页面上调用该函数,那么我认为它会起作用。

答案 4 :(得分:0)

anwswer是“不可能”

<强>为什么

因为一旦浏览器触发提交事件,所有用户与页面的交互都将停止。触发提交事件后,您的浏览器和Web服务器之间就会进行通信。这就是broswers的设计方式。

在您的情况下,表单提交是因为您在页面中有一个表单,并且在该表单中您输入了type = button。如果您不想提交页面,可以将输入的类型更改为按钮。

检查这个小提琴http://jsfiddle.net/kiranvj/MBxNs/1/