我有一个jqGrid,当用户编辑一行时,他们需要单击一个按钮来应用更改。此按钮应创建一个对话框,该对话框应触发选择了该选项的ajax调用。
但是,对话框永远不会打开。 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 :(得分: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!");
}
});
}
EDIT 我做了一个小提琴http://jsfiddle.net/94cfma4m/我认为代码本身一切正常,也许rowData源无效?