2012-06-19 78 views
1

了解点击并提交以下 例如:时提交表单,点击功能的顺序,并提交

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

,如果它是可能的功能testFun运行后,当我们点击按钮提交

表单的提交

如果答案是否定的。 为什么?点击提交按钮时浏览器如何工作?该命令是点击功能 - >提交?是对的??

+1

提交“关闭”页面 – gdoron

+0

我不明白你的意思 – SKing7

+0

在提交表单之后,是否要在**或**之前运行**功能?第一个可能的第二个不是(没有发布使用AJAX的表单) – ManseUK

回答

1

不,你不能表单提交后执行一个功能 - 如下这些事情被执行的命令是:

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

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

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

提交按钮,然后应修改如下:

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

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

+0

是否有关于此的文档???谢谢 – SKing7

+0

文档中有各种各样的文档 - 但最有趣的是关于事件:http://www.quirksmode.org/js/events_events.html – ManseUK

+0

按钮的'onlick'事件在'submit表格事件 – ManseUK

1

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

1选项将在您的actionurl页面上运行testFun()页面,但根据功能的不同,这可能是不可能的。

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

+0

为什么?你的意思是点击时,点击功能运行,当它运行结束时,并提交?这是 ? – SKing7

+0

当您提交表单时,它将发布到URL。因此你不再在表单页面上,所以你不能在那里运行任何函数。 – Curt

+0

是的,但是如果浏览器会忽略点击功能而只提交? – SKing7

0

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

0

的anwswer是“这是不可能的”

为什么

因为一旦浏览器触发提交事件与页面中的所有用户交互停止。在提交事件被触发后,您的浏览器和网络服务器之间的通信就会开始。这是怎样设计的。

在你的情况下,表单提交发生的原因是你的页面中有一个表单,并且在那个表单中你有一个类型=按钮的输入。如果您不想提交页面,则可以将输入的类型更改为按钮。

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

+0

这是可能的 - 使用AJAX发布表格 – ManseUK

+0

正确但Sking7使用提交按钮进行表单提交,而不是ajax。 – kiranvj

+0

是的,我同意。但为什么?点击提交按钮时浏览器如何工作?该命令是点击功能 - >提交?是对的?? – SKing7

1

没有,但testFun威力(反过来)调用另一个,异步函数,不会运行,直到形式提交了(这点不会因为运行在所有在该浏览器将离开该页面)。