Javascript对话框无法打开

时间:2014-08-28 14:20:12

标签: javascript jquery ajax jqgrid modal-dialog

我有一个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的中断。

1 个答案:

答案 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源无效?