【发布时间】:2016-08-02 23:10:09
【问题描述】:
我正在尝试使用 jQueryUI 对话框覆盖默认确认框,这是我的尝试:
window.confirm = function (message_confirm) {
$(document.createElement('div'))
.attr({ title: 'Please confirm', 'class': 'confirm', 'id': 'dialogconfirm' })
.html(message_confirm)
.dialog({
buttons: { YES: function () { return true; }, NO: function () { $(this).dialog('close'); } },
close: function () { $(this).remove(); },
draggable: true,
modal: true,
resizable: false,
width: 'auto',
hide: { effect: "fade", duration: 300 },
});
};
这是因为一旦运行此脚本,调用常规 confirm 会显示 jQueryUI 对话框,但是 YES 选择不起作用。我有一个如下所示的 ajax 调用:
if (confirm("Are you sure you want to delete this user?"))
{
alert("test");
//ajax call
}
return false;
并且没有出现测试警报。对话框的 NO 选项工作正常。我怎样才能让 YES 起作用?
谢谢。
【问题讨论】:
-
有什么错误吗?尝试使用 console.log 而不是警报? console.log 是否在“YES:”函数中工作(替换为 return true;)?
-
@ggzone 没有错误。将
return true替换为console.log("dialog yes clicked"),当我单击“是”时,它正确显示在控制台上。代替警报的 console.log 也没有出现(与原始警报测试的行为相同)。 -
好吧,那你需要一个回调函数。已经有一个很好的答案如何做到这一点
标签: javascript jquery html jquery-ui