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 :