jQuery – 为什么$(’form’)。get(0).submit()不会触发附加的提交处理程序?

假设我为表单创建了以下处理程序(回调):

$('form').submit(function (event) { event.preventDefault(); alert('form submitted'); }); 

为什么调用$('form').get(0).submit不调用submit处理程序? 表单直接提交。

.get(0)返回本机js DOM元素(与$('form')[0] )然后直接触发提交事件。

如果你试图让第一个Element使用.eq(0)并使用.eq(0)触发提交jQuery样式。

摘要

  • $('selector')[0] 〜返回本机js DOM元素
  • .get(0) 〜与[0]相同。
  • .eq(0) 〜将第一个元素作为jQuery对象返回。

更多

  • 附加提交事件(jQuery): $('form.selector').submit(function (e) { });
  • Trigger Submit(jQuery): $('form.selector').submit(); OR $('form.selector').trigger('submit');
  • 在第一个元素上触发提交: $('form').eq(0).submit();

演示jsFiddle

我希望你需要它。

演示jQuery

 $('form').submit(function (event) { event.preventDefault(); // Will prevent the native handler from firing. alert('form submitted :' + $(this).attr("id")); }); //change the `.eq(index)` to 1 to trigger the submit on the second form: $('form').eq(0).submit(); // Same as: $('form').eq(0).trigger("submit"); 

演示HTML