【发布时间】:2011-06-05 07:04:42
【问题描述】:
假设我想在允许用户保存记录之前提示用户。因此,假设我在标记中定义了以下按钮:
<asp:Button ID="btnSave" runat="server" OnClick="btnSave_Click"></asp:Button>
要强制使用普通 javascript 进行提示,我可以为我的保存按钮连接 OnClick 事件,使其类似于这样(我可以在 Page_Load 中执行此操作):
btnSave.Attributes.Add("onclick",
"return confirm('are you sure you want to save?');");
确认调用将阻塞,直到用户实际按下是/否按钮之一,这是我想要的行为。如果用户按下“是”,那么我的btnSave_OnClick 方法将被调用。
对于等效的 jquery 对话框,我尝试了类似的方法(见下文)。但问题是,与 javascript confirm() 不同,它会一直通过这个函数 (displayYesNoAlert),然后在 C# 端进入我的 btnSave_OnClick 方法。我需要一种方法让它“阻塞”,直到用户按下是或否按钮,然后返回 true 或 false,以便根据用户的回答调用或不调用 btnSave_OnClick。
目前,我只是放弃并使用了javascript的确认,我只是想知道是否有办法做到这一点。
function displayYesNoAlert(msg, closeFunction) {
dialogResult = false;
// create the dialog if it hasn't been instantiated
if (!$("#dialog-modal").dialog('isOpen') !== true) {
// add a div to the DOM that will store our message
$("<div id=\"dialog-modal\" style='text-align: left;' title='Alert!'>").appendTo("body");
$("#dialog-modal").html(msg).dialog({
resizable: true,
modal: true,
position: [300, 200],
buttons: {
'Yes': function () {
dialogResult = true;
$(this).dialog("close");
},
'No': function () {
dialogResult = false;
$(this).dialog("close");
}
},
close: function () {
if (closeFunction !== undefined) {
closeFunction();
}
}
});
}
$("#dialog-modal").html(msg).dialog('open');
}
【问题讨论】:
-
这很棒,也是我正在寻找的。但是,我的 javascript 确认为消息提取了一个字符串。如何将其附加到div? var where_to_coupon = 确认(pm_info_msg_013);