2012-10-10 95 views
2

我的表單上有jQuery驗證。當我點擊提交按鈕時,'save'函數被調用:jQuery驗證不使用原始JavaScript提交功能時觸發

function save(){ 
    var form = document.getElementById('myForm'); 
    form.submit(); // <- jquery validation is not called 
    $(form).submit() // <- jquery validation works 
} 

爲什麼form.submit()沒有驗證我的表單?

回答

6

native submit methodW3 spec)將提交表格,而沒有其他。它不會觸發可取消的submit事件(請參閱concept of form submit)。

jQuery的submit method.trigger("submit")的別名,但「除了,默認表單上提交的行動將被解僱 [引用] ,所以表格將被提交。

您的審定會監聽那些提交事件,這在使用本地提交方法時不會發生。

+0

當我調用native onclick方法時,jQuery點擊事件觸發,是嗎?當我調用原生提交方法時,jQuery提交不會被解僱。這很奇怪,因爲有本地事件'onsubmit' – karaxuna