关于点击并提交示例如下:
<form action="url" method="post">
<input type="text" id="input1"/>
<input type="submit" value="submit" onclick="testFun()"/>
</form>
当我们单击按钮提交时,是否有可能在表单提交后运行函数 testFun
如果答案是否定的。为什么?单击提交按钮时浏览器如何工作?订单是点击功能->提交?是正确的??
关于点击并提交示例如下:
<form action="url" method="post">
<input type="text" id="input1"/>
<input type="submit" value="submit" onclick="testFun()"/>
</form>
当我们单击按钮提交时,是否有可能在表单提交后运行函数 testFun
如果答案是否定的。为什么?单击提交按钮时浏览器如何工作?订单是点击功能->提交?是正确的??
不,您无法在提交表单后执行功能 - 执行的顺序如下:
onclick
函数被执行url
表单的action中指定false
您可以通过从 onclick 处理程序返回来阻止浏览器提交页面:
function myfunc() {
// do some stuff
return false;
}
然后应该像这样修改提交按钮:
<input type="submit" onclick="return myfunc()"/>
如果您确实希望在提交表单后执行某个功能,您需要使用 AJAX 提交表单 - 这不会导致浏览器离开页面,并且可以在提交表单后执行 JavaScript 函数
这是不可能的,因为表单action
会将浏览器重定向到该 URL。
1 选项是testFun()
在您的action
url
页面上运行,但这可能是不可能的,具体取决于功能的作用。
如果您要在此处发布有关您实际尝试做什么的更多信息,那么它可能会有所帮助。
不,但testFun
可能(反过来)调用另一个异步函数,该函数在表单提交之前不会运行(此时它根本不会运行,因为浏览器会离开页面)。
不,这是不可能的,提交后您超出了当前页面的范围。但是,如果您使用 iframe 提交表单并在父页面上调用该函数,那么我认为它会起作用。
答案是“不可能”
为什么
因为一旦浏览器触发提交事件,所有用户与页面的交互都会停止。触发提交事件后,您的浏览器和网络服务器之间会进行通信。这就是浏览器的设计方式。
在您的情况下,发生表单提交是因为您的页面中有一个表单,并且在该表单中您有一个 type=button 的输入。如果您不想提交页面,您可以将输入的类型更改为按钮。