假设我想在允许用户保存记录之前提示用户。因此,我们假设我在标记中定义了以下按钮:
<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?');");
确认调用将被阻止,直到用户实际按下“是/否”按钮之一,这是我想要的行为。如果用户按"is",则会调用我的 btnSave_OnClick
方法。
对于等效的 jquery 对话框,我尝试了类似的操作(见下文)。但问题是,与 javascript recognize() 不同,它将一直通过此函数 (displayYesNoAlert),然后继续执行 C# 端的 btnSave_OnClick 方法。我需要一种方法使其“阻止”,直到用户按下"is"或“否”按钮,然后返回 true 或 false,以便根据用户的回答调用或不调用 btnSave_OnClick。
目前,我只是放弃并使用javascript的confirm,我只是想知道是否有办法做到这一点。
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');
}
最佳答案
我使用一个回调函数,当他们单击"is"等特定按钮时会引发该函数。您将无法阻止脚本中的执行,但也无法让 UI 响应用户操作。
关于asp.net - jQuery 替代 javascript 确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4626093/