html表单提交点击(),提交()和手动点击jquery之间的区别

jsc*_*oot 8 forms jquery submission

我有一个jsp页面如下:

<script type="text/javascript" src="/mywebapp/js/jquery.js"></script>
<script type="text/javascript">         
 $( function() {  
  $('#testform').submit(function(){
   alert('now starting submit');
   return true;
  });

  $("#test1btn").click(function(){
   $('#testform #submit').click();    
  }); 
  $("#test2btn").click(function(){
   $('#testform').submit();    
  }); 
 });    
</script>
<form id="testform" method="post"  action="backend/search_test.do">
<input id="reqpagenr" name="reqpagenr" size="10">
<input type="button" id="test1btn"  value="TestClick"/>
<input type="button" id="test2btn"  value="TestSubmit"/>
<input id="submit" type="submit" value="Go">
</form>
Run Code Online (Sandbox Code Playgroud)

当我手动点击(即使用鼠标)按钮"Go"时,在显示文本"now starting submit"后提交表单; 单击"TestClick"按钮时,表单已成功提交,但文本"现在开始提交"没有出现; 单击"TestSubmit"按钮时,会出现"现在开始提交"文本,但表单根本没有提交.

与我的预期相反,"TestClick"和"TestSubmit"按钮不起作用,因为单击两个按钮时"Go"按钮都会起作用.根据我的理解,三个按钮点击应该做同样的事情,即在文本"now starting submit"出现后提交表单.所以我的问题是,为什么三个按钮点击的结果不同?

我正在使用jquery 1.3.2

Dav*_*ean 6

当通过$('#testform')手动设置表单提交时,看起来jQuery提交事件处理程序被忽略了.submit();

这应该在click处理程序中起作用:

$('#testform').trigger("submit")
Run Code Online (Sandbox Code Playgroud)


Ric*_*d M 5

第二个按钮不提交表单,因为jQuery(或DOM)中的错误导致submit方法失败,如果提交按钮的id为'submit'.请参阅:http://bugs.jquery.com/ticket/1414