2014-01-13 28 views
0

我有以下的jQuery腳本是應該將數據發佈到數據庫,jQuery的阿賈克斯發佈兩次數據

//delegated submit handlers for the forms inside the table 
            $('#issue').on('click', function (e) { 
             e.preventDefault(); 

             //read the form data ans submit it to someurl 
             $.post('<?php echo base_url() ?>pharm_profile/dept_issue/', $('#Issues_Form').serialize(), function() { 
              //success do something 
              alert("Success Approved Successfully"); 
              var url = "<?php echo base_url() ?>pharm_profile";  
              $(location).attr('href',url); 
             }).fail(function() { 
              //error do something 
              alert("Failed please try again later or contact the system administrator"); 
             }) 
            }) 

每當我按一下按鈕,腳本運行兩次/帖中的數據的兩倍。我怎樣才能控制一次?

+0

可以嘗試使用,而不是「點擊(函數(E){」「對(‘點擊’,功能(E){」 –

+0

嘗試停止傳播您最好還是發佈相關的HTML代碼確保不要綁定事件兩次 –

+0

您可以提供更多上下文嗎?您是否有其他JavaScript代碼,可能會觸發其他的發佈請求,或觸發點擊事件'#問題'? – LeGEC

回答

0

如果您的DOM內部有多個「#issue」元素,就會發生這種情況。即使只顯示一個,也會發生這種情況 另一方面,每次添加id爲「issue」的元素時,「on」實際上都會被註冊。所以,如果你碰巧添加這些元素動態,每次你添加它,一個新的點擊事件處理程序得到分配...

要務實,因爲它沒有縫,你真的想要那種行爲...之前「的」登記使用過..

$('#issue').off('click'); 
$('#issue').on('click',function....);