2010-07-08 89 views
0

我遇到了麻烦确定叫什么来使我的表格不提交时,我叫.submit()通过JavaScript不工作

$('#form').submit(); 

通过JavaScript(但提交罚款当我点击提交按钮)。所以,我想补充这一段代码来进行测试:

$('#form').live('submit', function() 
{ 
    alert('submitting form'); 
    return true; 
}); 

现在,当我点击提交按钮,警报显示,然后表单提交。当我拨打电话时:

$('#form').submit(); 

通过javascript,提示显示,但表单不提交。现在我通过ajax将表单拖动到模式窗口中,因此不确定这与此有什么关系。任何人都知道可能会导致这个问题?

回答

2

submit事件不支持live函数。

从jQuery API:点击,DBLCLICK,KEYDOWN:

在jQuery的1.3.x的只有以下 JavaScript事件(除了 自定义事件)可以与 .live()绑定, keypress,keyup,mousedown,mousemove, mouseout,mouseover和mouseup。由于jQuery 1.4的 ,.live()方法 支持自定义事件以及所有的 JavaScript事件。截至jQuery 1.4.1 甚至焦点和模糊工作与生活 (映射到更合适的,冒泡,事件focusin和 专注)。从jQuery 1.4.1开始,可以指定 悬停事件(将 映射到“mouseenter mouseleave”)。

+0

我试着将提交按钮输入类型切换为按钮而不是提交,并在该按钮上单击.live()事件。 .live事件中的ajax请求运行正常,但在该click事件中通过javascript调用时仍不会执行form.submit()方法。 – ryanzec 2010-07-08 19:41:32

+0

你有没有尝试我在我的答案中提供的内容。本来会认为会有效的。 – 2010-07-19 06:18:32

0

尝试调用提交()的HTMLFormElement对象:

$("#form")[0].submit(); 

同样的结果吗?

+0

会做同样的$(“#form”)。因为id只能使用一次。除非你的意思是$(“form”)[0] .submit(); – 2010-07-09 08:52:37

0
$("#form").trigger('submit'); 

???