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

when form submit ,the order of click function and submit

本文关键字:功能 提交 顺序 表单提交      更新时间:2023-09-26

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

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

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

如果 ANSWSER 是否。为什么?单击"提交"按钮时浏览器如何工作?订单是点击功能->提交? 对吗??

不,提交表单后,您无法执行函数 - 执行操作的顺序如下:

  • 用户单击提交按钮
  • 执行onclick函数
  • 浏览器将页面提交到表单操作中指定的url

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

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

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

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

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

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

1 个选项是在action url页面上运行testFun(),但根据函数的功能,这可能是不可能的。

如果您要在此处发布有关您实际尝试执行的操作的更多信息,那么可能会有所帮助。

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

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

anwswer 是 "这是不可能的"

为什么

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

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

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