如何通过调用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()效果很好,但我想使用对话框
谢谢
答案 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);
});