2015-05-28 136 views
3

我正在使用codeigniter和jquery的單頁應用程序,通過點擊一個菜單,我正在加載內容,這工作正常,第一次加載內容,當我嘗試提交一個有效的模式表單,但是每次我重新載入內容並且我再次提交相同的表單時,我都看到它已被重新載入頁面上的內容的次數。表單提交了多次

這是當我點擊菜單項,我如何加載主要內容,以容器:

case 'Parametrage': 
     $("#container").empty(); 
     $("#container").load("params"); 
     break; 

並鑑於「參數」控制器加載的提交模式窗體腳本:

$(function(){ 
    $('body').on('submit', 'form', function(e){ 
     e.preventDefault(); 

     $.ajax({ 
      type: "POST", 
      url: "<?php echo site_url("params/save_form"); ?>", 
      data:$(this).serialize(), 
      success: function(response){ 
       if(response == 'true'){ 
        $.modal.close();  
        var table = $('#table_id').DataTable(); 
        table.ajax.reload(); 
        $('#dialog-message').attr('title','Enregistrement'); 
        $('#msgIcon').attr('class','ui-icon ui-icon-circle-check'); 
        $('#msgMessage').html('Enregistré avec succès'); 
        $("#dialog-message").dialog({ 
         modal: true, 
         buttons: { 
         Ok: function() { 
          $(this).dialog("close"); 
         } 
         } 
        }); 
       }else{ 
        $('#errors_container').html(response); 
       } 

      }, 
      error: function(){ 
       alert('Error'); 
      } 
     });  
    }); 
}); 

你能幫忙嗎?

感謝

從Shaiful伊斯蘭教答案入手,解決了這個問題:

case 'Parametrage': 
    $("#container").empty(); 
    //Added this line 
    $('body').off("submit", "form"); 
    $("#container").load("params"); 
    break; 
+0

數據插入後使用'header'函數重定向到您的控制器。它會阻止提交 –

回答

4

每次加載主內容時,似乎都會加載JavaScript。因此每次更改事件都與表單綁定。每次加載主內容時都需要刪除以前的綁定。

$('body').on('submit', 'form', function(e){

$(body).off("submit", "form"); 

它將把你以前的綁定,並保持一個剛加入這一行結合活着。

+0

這工作,但沒有在ajax調用中執行成功函數的代碼,它將空洞頁面重定向到控制器的原始響應 – Houssem

+0

好吧,終於它通過在加載內容的代碼中添加此行來查看我的編輯 – Houssem

3

見AJAX參數的URL報價更改此

url: "<?php echo site_url("params/save_form"); ?>", 

喜歡

url: '<?php echo site_url("params/save_form"); ?>', 
2
url: "<?php echo site_url("params/save_form"); ?>", 

請更改爲

url: "<?php echo site_url(\"params/save_form\"); ?>" 

OR

url: "<?php echo site_url('params/save_form'); ?>", 
+0

:(不工作.. – Houssem

2

不能使用double quotedouble quote所以改變這樣的: -

url: '<?php echo site_url("params/save_form"); ?>', 

也改變$('body').on('submit', 'form', function(e){$('body').off('submit').on('submit',function(e){

+0

仍然是相同的問題 – Houssem