我覺得這段代碼是一個良好的開端。它應放置在單獨的文件,其中包括要使用它(如果你似乎有腳本的全局列表 - 它爲它的好地方)
var suppressed_items = [];
function allowOnlyOne(item,e){
if (jQuery.inArray(item, suppressed_items)==-1){
//hi little item, I haven't saw you before, please go on... but I remember you
suppressed_items.push(item);
return true;
}
else{
//Hey, you have been submitted already, stay where you are!
return false; //or e.preventDefault(), it's a matter of faith :)
}
}
jQuery(document).ready(function(){
//don't worry, it won't replace your `ready` handlers, but just append new handler
jQuery("from").submit(function(e){
return allowOnlyOne(jQuery(this),e);
});
});
您可以使用allowOnlyOne
功能與任何項目你希望。因此,例如,允許在所有超鏈接一次點擊,即ready
處理器裏面添加:
jQuery("a").click(e){
return allowOnlyOne(jQuery(this),e);
}
我希望你得到的基本思路:捕捉事件,得到觸發它的元素的ID,它送入AllowOnlyOne
以及事件。
當然你可以用它四周爲自動執行關閉以達到incapsulation等等...
是否要防止多個表單提交從單個頁面,還是什麼? – J0HN
是的 - 我需要防止多個表單提交。雖然,我想擴展解決方案,以防止多個超鏈接點擊(可能通過捕獲link.onClick事件) – user1068991
您是否執行異步請求(AJAX),或者只是表單提交? – J0HN