jQuery的 - 为什么$( '形式')得到(0).submit()不会触发附加提

2019-10-21 02:56发布

假设我已经创建了以下处理程序(回调)的形式:

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

为什么调用$('form').get(0).submit不叫提交处理? 该表格只是被直接提交。

Answer 1:

.get(0)返回原生JS DOM元素(同$('form')[0]然后您正在触发直接提交事件。

如果你想获得的第一个元素使用.eq(0)并触发使用jQuery的提交风格.submit()

摘要

  • $('selector')[0]返回天然JS DOM元素
  • .get(0)同[0]。
  • .eq(0)返回第一个元素作为jQuery对象。

更多

  • 附加提交事件(jQuery的): $('form.selector').submit(function (e) { });
  • 触发提交(jQuery的): $('form.selector').submit();$('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:

<form id="form1"></form>
<form id="form2"></form>


文章来源: jQuery - Why does $('form').get(0).submit() not trigger the attached submit handler?
标签: jquery forms