Asp.net jQuery替换javascript确认

Asp.net jQuery替换javascript确认,asp.net,jquery,confirm,Asp.net,Jquery,Confirm,假设我想在允许用户保存记录之前提示用户。因此,假设我在标记中定义了以下按钮: <asp:Button ID="btnSave" runat="server" OnClick="btnSave_Click"></asp:Button> 确认呼叫将被阻止,直到用户实际按下Yes/No按钮之一,这是我想要的行为。如果用户按“是”,则将调用我的btnSave\u OnClick方法 对于等价的jquery对话框,我尝试

假设我想在允许用户保存记录之前提示用户。因此,假设我在标记中定义了以下按钮:

<asp:Button ID="btnSave" runat="server" OnClick="btnSave_Click"></asp:Button>
确认呼叫将被阻止,直到用户实际按下Yes/No按钮之一,这是我想要的行为。如果用户按“是”,则将调用我的
btnSave\u OnClick
方法

对于等价的jquery对话框,我尝试了类似的方法(见下文)。但问题是,与javascript confirm()不同,它将完全通过这个函数(displayYesNoAlert),然后进入C端的btnSave_OnClick方法。我需要一种方法使其“阻塞”,直到用户按下Yes或No按钮,然后返回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');

}
函数显示是否警报(消息,关闭函数){
dialogResult=false;
//如果对话框尚未实例化,则创建该对话框
if(!$(“#对话框模式”).dialog('isOpen')!==true){
//在DOM中添加一个div来存储我们的消息
$(“”)。附件(“正文”);
$(“#对话框模式”).html(msg.dialog({
可调整大小:正确,
莫代尔:是的,
职位:[300200],
按钮:{
“是”:函数(){
dialogResult=true;
$(此).dialog(“关闭”);
},
“否”:函数(){
dialogResult=false;
$(此).dialog(“关闭”);
}
},
关闭:函数(){
if(关闭函数!==未定义){
closeFunction();
}
}
});
}
$(“#对话框模式”).html(msg.dialog('open');
}

我使用一个回调函数,当他们单击某个特定按钮(如Yes)时,该函数会被触发。您将无法阻止脚本中的执行,但用户界面也会响应用户操作。

这可能很简单,只需使用当前的“保存”按钮触发确认对话框,然后在确认对话框内使用“是”按钮触发“btnSave\u Click”事件


我想我一开始误解了这个问题……这可能对你有所帮助,尽管我还没有测试过

如果在移动到最终代码(如SAVE)之前只需要一个final Confirm框,那么在按钮单击的回调函数中调用SAVE()函数肯定会有所帮助。那很好

我还有一个问题,如下所示: 我想在表单验证中使用这个自定义确认框,其中可能有多个案例和场景需要逐个确认

如果用户对第一个确认框说是,我们希望根据表单数据条件显示第二个确认框

如果用户再次对第二个确认框说“是”,那么我们可能需要显示下一个确认框。
这是一个问题,在这些情况下还不可能出现。

是的,我知道我可以使用回调函数,请参阅上面displayYesNoAlert函数的“是”部分。但这并不是我真正需要的行为,因为如果用户对对话框的响应为“是”,我希望我的btnSave_Click被称为服务器端。您是否可以复制按钮用于引发回发并在回调中执行回发的脚本?在最坏的情况下,隐藏“真实”提交按钮,并使使用对话框的假提交按钮可见,该对话框反过来执行$('btnSave')。单击();我以前曾以编程方式在客户端执行回发,但我想不起如何立即执行。@stephen776-我正在尝试取消确认调用,并用jquery对话框(请参阅问题标题)替换它。@dcp是的,我建议您打开模式对话框中的“保存”按钮……然后选择“是”模式对话框中的按钮连接到代码隐藏中的“btnSave_click”事件。“否”按钮只会关闭模式dialog@stephen776-“将模式对话框中的“Yes”(是)按钮连接到代码隐藏中的“btnSave_click”(btnSave_click)事件。这是我不确定该怎么做的部分,你能提供一个例子吗?我添加了一个链接,指向一篇可能是help@stephen776-是的,我看到了那个链接,但是谢谢你发布它。我想我希望有一个更简单的方法,但似乎没有。再次感谢。这太棒了,这也是我想要的。但是,我的javascript确认为消息提取一个字符串。如何将其附加到div?var,其中,从票面到票面=确认(项目管理信息信息013);
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');

}