使用自定義事件和trigger()
!
首先,在窗體上放一個單選按鈕,讓用戶在AJAX /導出到文件之間切換。假設這個字段的名稱是submitAction
其次,您的提交偵聽器僅根據submitAction
電臺的值決定接下來會發生什麼。這是你火了自定義事件(我們在第3步中定義它們):
$('form.specialform').on('submit',function(e){
e.preventDefault();
var checked = $(this).closest('[name="submitAction"]').filter(':checked');
if(checked.val() == 'ajax'){ //ajax!
$(this).trigger('submitAJAX');
} else { //export to file!
$(this).trigger('submitExport');
}
});
三,定義自定義事件有兩個事件偵聽器:
$('form.specialform').on('submitAJAX',function(e){
//do AJAX call here
});
$('form.specialform').on('submitExport',function(e){
//do file export here
});
正如你所看到的,做這個這種方式可以避免一連串解綁和重新綁定相同事件處理程序的麻煩。
這有幫助嗎?
夥計,你是我的英雄 - 我花了2個小時拉我的頭髮試圖找出如何'解開'那個愚蠢的(好吧,不是真的)ajaxForm。你有沒有找到一個更好的方式來做到這一點? – techexpert