jQuery.submit()最终是否调用本机DOM submit()方法?

时间:2013-03-28 03:31:08

标签: jquery forms submit form-submit

使用jQuery,我最近想知道这两个相似的代码片段是否相同:

$('form[name="unique-name"]').submit(); // (call jQuery.submit() on the 
                                        //  collection of 1 form node)

VS

$('form[name="unique-name"]')[0].submit(); // (call the native HTMLFormElement.submit()
                                           //  DOM method on the single form in the collection)

两者都在我的代码(IIRC)中产生相同的结果,但无论我开始怀疑jQuery是否只是传递给本机DOM方法,或者它是否正在完全做其他事情。在jQuery源代码中进行挖掘之后,我找不到任何出现的本机DOM submit()被调用。

在阅读the docs并进行搜索后,我仍然无法确定jQuery是否提供了“更好”的提交(),或者他们是否只是在整个集合中传递给原生DOM submit()。这是什么?如果可能的话,请指出我的来源或文件。

1 个答案:

答案 0 :(得分:3)

是的,除非你致电event.stopPropagation(),否则jQuery会起泡事件。

我有根据的猜测是submit()

的情况
    postDispatch: function( event ) {
        // If form was submitted by the user, bubble the event up the tree
        if ( event._submit_bubble ) {
            delete event._submit_bubble;
            if ( this.parentNode && !event.isTrigger ) {
                jQuery.event.simulate( "submit", this.parentNode, event, true );
            }
        }
    },