在确认时调用$ ajax

时间:2015-01-25 16:43:39

标签: javascript jquery ajax

如何通过调用myConfirm函数按Cancel或Ok按钮来阻止/调用$ ajax?目前,如果我尝试使用,我会得到未定义:

 var vCal = myConfirm('dialogText', 'dialogTitle');

我错过了什么吗?

function myConfirm(dialogText, dialogTitle) {
$('<div style="padding: 10px; max-width: 500px; word-wrap: break-word;">' + dialogText + '</div>').dialog({
    .....
    buttons: {
      "OK" : function (e) {
        console.log('yes');
        $(this).dialog('destroy');
        return true;
      },
      "Abbrechen" : function (e) {
        console.log('no');
        $(this).dialog('destroy');
        return false;
      }
    }
});
}   

function openTickerDialogDelete (id) {
....

if(!myConfirm('dialogText', 'dialogTitle')) {
    return false;
} 
console.log('call ajax');
$.ajax({    
    .....
        success: function( data ) {

        }
})
}

使用return confirm()效果很好,但我想使用对话框

谢谢

1 个答案:

答案 0 :(得分:1)

只需将ajax调用放在OK按钮功能中,它将在单击按钮时执行:

function myConfirm(dialogText, dialogTitle, okCallback) {
$('<div style="padding: 10px; max-width: 500px; word-wrap: break-word;">' + dialogText + '</div>').dialog({
    .....
    buttons: {
      "OK" : function (e) {
        if ($.isFunction(okCallback)) {
           okCallback();
        }
        $(this).dialog('destroy');
        return true;
      },
      "Abbrechen" : function (e) {
        console.log('no');
        $(this).dialog('destroy');
        return false;
      }
    }
});
}

使用任何成功功能打开对话框:

myConfirm('dialogText', 'dialogTitle', function(){
    $.ajax({    
        .....
        success: function( data ) {

        }
    });
});

打开没有成功功能的对话框

myConfirm('dialogText', 'dialogTitle');

使用参数调用函数:

myConfirm('dialogText', 'dialogTitle', function(){
    tickerDelete(id);
});