jQuery对话框确认删除不会触发删除
jQuery dialog confirm delete does not trigger the delete
当我单击删除按钮时,我有以下函数要调用(我有一个用户列表,其相关id和基于其要删除的id的删除按钮),其工作良好:
function confirmDelete(name, deleteURL) {
var description = "Delete " + name + "?";
var check = confirm(description);
if(check == true) {
self.location = deleteURL;
} else {
window.location.deleteURL = deleteURL;
}
return false;
}
然后我决定重写confirm函数,并把它变成一个jquery对话框,如下所示:
$(function () {
window.confirm = function (message) {
$('#overrideAlert').text(message).dialog({
resizable: false,
height: 140,
modal: true,
buttons: {
"Delete item": function () {
$(this).dialog("close");
},
Cancel: function () {
$(this).dialog("close");
}
}
});
};
});
当我点击删除链接,jQuery对话框弹出正确,但当我点击"删除项目",它实际上并不触发删除,它只是关闭对话框(因为它应该)。我在这里错过的可能是应该有方法(与JavaScript确认触发删除时ok被选中)删除我的项目。谁能让我知道我在这里错过了什么?谢谢。
您可能需要重写confirmDelete()才能使此工作。
也许像这样:
function confirmDelete(name, deleteURL) {
var description = "Delete " + name + "?";
confirm(description, doDelete, deleteURL);
}
function doDelete(check, deleteURL) {
if(check == true) {
self.location = deleteURL;
} else {
window.location.deleteURL = deleteURL;
}
}
$(function () {
window.confirm = function (message, callbackFunc, funcArg) {
$('#overrideAlert').text(message).dialog({
resizable: false,
height: 140,
modal: true,
buttons: {
"Delete item": function () {
$(this).dialog("close");
if ($.isFunction(callbackFunc)) {
callbackFunc(true, funcArg);
}
},
Cancel: function () {
$(this).dialog("close");
if ($.isFunction(callbackFunc)) {
callbackFunc(false, funcArg);
}
}
}
});
};
});
更好的是,你可以传递一个回调函数给你的new confirm函数…
我采取的方法是让.confirm
函数返回promise
。
var confirm = function() {
var def = $.Deferred();
...
"Delete Item": function() {
$(this).dialog('close');
def.resolve();
},
"Cancel": function() {
def.reject();
}
}
return def;
}
confirm("prompt").done(function() {
console.log('success');
}).fail(function() {
console.log('cancel');
});
相关文章:
- 删除确认对话框在第一次单击时不起作用
- 在使用 JavaScript 删除确认消息之前检查是否选中了复选框
- 删除确认 JavaScript
- 如何进行至少需要1条记录才能删除的删除确认
- 删除确认消息提前关闭在Rails应用程序
- 删除确认 - 打开模式弹出窗口时从 html 传递数据
- 执行删除确认框上单击“删除”
- 如何自定义删除确认消息
- 删除确认返回未定义在chrome中
- 单击按钮,我想验证数据,如果为真,我想要删除确认对话框.这可能吗?
- 如何使用“俏皮的情态”删除确认信息
- 在jsp中使用display标记删除确认
- 从javascript bookmarklet中删除确认/警告对话框
- 单击“取消”和“确定”,在js中执行相同的删除确认操作
- 如何修改浏览器默认的删除确认框
- 使用Bootstrap和AJAX删除确认模式
- 引导程序3:删除确认对话框无效
- 将条件添加到jqgrid删除确认弹出框
- Ajax/javascript 删除 确认文本而不带对话框
- Jquery 和 Ajax 删除确认框