2010-05-11 27 views
0

我想要一個jQuery表單提交處理程序來尊重任何以前的提交處理程序,包括用onsubmit添加的處理程序。尊重來自jQuery.submit的常規onsubmit處理程序

我試圖檢測以前的處理程序的返回值,但似乎無法做到這一點:

<form><input type="submit" /></form> 
<script type="text/javascript"> 
$('form')[0].onsubmit = function() { return false; }; // called first 
$('form').submit(function(e) { 
    console.log(e.result); // undefined 
    console.log(e.isDefaultPrevented()); // false 
    console.log(e.isPropagationStopped()); // false 
    console.log(e.isImmediatePropagationStopped()); // false 
}); 
</script> 

有沒有辦法做到這一點?

回答

0

我發現一個非jQuery的方式做到這一點:

var form = $('form')[0]; 
var old_onsubmit = form.onsubmit; 
form.onsubmit = function() { 
    if ($.isFunction(old_onsubmit)) { 
    if (old_onsubmit() === false) { 
     console.log("false"); 
     return false; 
    } 
    } 
    console.log("true"); 
    return true; 
} 

但我更喜歡現在從jQuery結合檢測這種提交處理

+0

幾個星期沒有意見,接受我自己的答案:( – orip 2010-06-20 18:52:11

相關問題