jQuery - 为什么$('form')。get(0).submit()不会触发附加的提交处理程序? [英] jQuery - Why does $('form').get(0).submit() not trigger the attached submit handler?
问题描述
$('form')。submit (function(event){
event.preventDefault();
alert('form submitted');
});
为什么调用 $('form')。get(0)。提交
不要调用提交处理程序?直接提交表单。
.get(0)
返回本地js DOM元素(与 $('form')[0]
相同),然后直接触发
submit事件。
如果您试图让第一个元素使用 .eq(0)
,并使用<$ c $触发提交jQuery样式c> .submit()。
摘要:
$ {code $('selector')[0] 〜返回本地的js DOM元素
.get(0)
〜与[0]相同。 .eq(0)
〜将第一个元素作为jQuery对象返回。更多:
- 附加提交事件(jQuery):
$('form.selector')。submit(function(e){}) ;
- 触发器提交(jQuery):
$('form.selector')。submit();
OR$('form.selector')。trigger('submit');
- 触发器在第一个元素上提交:
$('form')。eq(0).submit();
演示: jsFiddle
我希望它能满足您的需求。
Demo jQuery :
$('form')。submit(function(event){
event.preventDefault(); //将阻止本机处理程序开火。
alert('表单提交:'+ $(this).attr(id));
});
//改变`.eq(index)`为1来触发第二种形式的提交:
$('form')。eq(0).submit(); //相同:$('form')。eq(0).trigger(submit);
演示HTML :
< form id =form1>< / form>
< form id =form2>< / form>
Suppose I've created the following handler (callback) for a form:
$('form').submit(function (event) {
event.preventDefault();
alert('form submitted');
});
Why does calling $('form').get(0).submit
not call the submit handler? The form just gets directly submitted.
.get(0)
returns the native js DOM element ( Same as $('form')[0]
) and then you are triggering the
submit event directly.
if you are trying to get the first Element use .eq(0)
and trigger the submit jQuery style using .submit()
.
Summary:
$('selector')[0]
~ returns the native js DOM element.get(0)
~ Same as [0]..eq(0)
~ returns the first element as a jQuery object .
More:
- Attach to submit event (jQuery):
$('form.selector').submit(function (e) { });
- Trigger Submit (jQuery):
$('form.selector').submit();
OR$('form.selector').trigger('submit');
- Trigger Submit on the first element:
$('form').eq(0).submit();
Demo: jsFiddle
I hope its what you need.
Demo 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");
Demo HTML:
<form id="form1"></form>
<form id="form2"></form>
这篇关于jQuery - 为什么$('form')。get(0).submit()不会触发附加的提交处理程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!