【发布时间】:2018-12-25 15:07:25
【问题描述】:
我正在尝试使用 deleteConfimation 功能选项,但我发现默认确认框在我进入 deleteConfimation 功能之前弹出 - 我错过了什么? 在下面的代码中,我可以设置断点并使用新的 defaultConfirmMessage 观察数据对象是否正确设置,但是基本的 jtable 默认删除确认框已经出现,我从未看到更改过的框。
$(container).jtable({
title: tablename,
paging: true,
pageSize: 100,
sorting: true,
defaultSorting: sortvar + ' ASC',
selecting: false,
deleteConfirmation: function(data) {
var defaultMessage = 'This record will be deleted - along with all its assignments!<br>Are you sure?';
if(data.record.Item) { // deleting an item
// Check whether item is in any preset lists
var url = 'CampingTablesData.php?action=CheckPresets&Table=items';
$.when(
ReturnAjax(url, {'ID':data.record.ID}, MyError)
).done(
function(retdata, status) {
if(status=='success') {
if(retdata.PresetList) {
data.deleteConfirmMessage = 'Item is in the following lists: ' + retdata.PresetList + 'Do you still want to delete it?';
}
} else {
data.cancel = true;
data.cancelMessage = retdata.Message;
}
}
);
} else {
data.deleteConfirmMessage = defaultMessage;
}
},
messages: {
addNewRecord: 'Add new',
deleteText: deleteTxt
},
actions: {
listAction: function(postData, jtParams) {
<list action code>
},
createAction: function(postData) {
<create action code>
},
updateAction: 'CampingTablesData.php?action=update&Table=' + tablename,
deleteAction: 'CampingTablesData.php?action=delete&Table=' + tablename
},
fields: tableFields --- preset variable
});
=========== 进一步测试后,问题仅在删除项目时出现,并且通过代码的 $.when().done() 部分。对删除 url 的 Ajax 调用不会等待这个完成 - 我该如何克服这个问题?
【问题讨论】:
标签: jquery-jtable