2014-08-28 50 views
0

我有一個jqGrid,當用戶編輯一行時,他們需要點擊一個按鈕來應用這些更改。該按鈕應該創建一個對話框,該對話框應該觸發一個選定選項的ajax調用。Javascript對話框將無法打開

但是,對話框永遠不會打開。 Firebug將在創建它的函數內的斷點處停止,但從不做它應該達到的目標。

function confirm_dialog(rowData){ 
    $("#dialog").dialog({ 
     modal:true, 
     buttons: { 
      "Yes": function(){ 
       ajax_call(rowData, "yes"); 
       $(this).dialog("close"); 
      }, 
      "No": function(){ 
       ajax_call(rowData, "no"); 
       $(this).dialog("close"); 
      }, 
      "Cancel": function(){ 
       $(this).dialog("close"); 
      } 
     } 
    }); 
} 

function ajax_call(rowData, option){ 
    $.ajax({ 
     url: '{{django_base}}', 
     data: {'data':rowData, 'option':option}, 
     type: 'POST', 
     error: function(){ 
      window.alert("There was an error!"); 
     }, 
     success: function(){ 
      window.alert("Changes made successfully!"); 
     } 
    }); 
} 

$(function(){ 
    //... 
    baseGrid = new BaseGrid("#the-jqGrid", opts); 
    //...setting grid format 
    baseGrid.addButton("edit", 
     { caption:'Confirm Changes', onClickButton:confirm_dialog() }); 
} 

我在confirm_dialog和ajax_call的開頭放置了一個斷點。它將在頁面加載過程中擊中confirm_dialog中斷,但不會在按鈕被單擊時觸發。 ajax_call中的斷點永遠不會到達。

回答

0

如果這是你的產品代碼,那麼你就錯過了一個逗號:

function ajax_call(rowData, option){ 
$.ajax({ 
    url: '{{django_base}}', 
    data: {'data':rowData, 'option':option}, 
    type: 'POST', 
    error: function(){ 
     window.alert("There was an error!"); 
    }, **<-------missed comma** 
    success: function(){ 
     window.alert("Changes made successfully!"); 
    } 
}); 
} 

編輯 我做了一個小提琴http://jsfiddle.net/94cfma4m/我覺得一切都與代碼本身,也許rowData源是無效的好不好?

+0

只是一個複製錯誤,它在生產代碼中。 – SirDeimos 2014-08-28 15:04:04