jQuery的jQuery替换确认

时间:2011-01-07 13:49:57

标签: asp.net jquery confirm

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

<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方法。我需要一种方法使其“阻止”,直到用户按下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');

}

3 个答案:

答案 0 :(得分:2)

我使用一个回调函数,当他们点击特定按钮时会引发回复函数。您将无法阻止脚本中的执行,但也可以让UI响应用户操作。

答案 1 :(得分:2)

这可能就像使用当前的“保存”按钮来启动确认对话框一样简单,然后在“确认”对话框中使用“是”按钮触发“btnSave_Click”事件

我想我起初误解了这个问题......虽然我没有对它进行过测试,但这可能对你有所帮助。 http://tutorialzine.com/2010/12/better-confirm-box-jquery-css3/

答案 2 :(得分:0)

如果在转移到最终代码(例如SAVE)之前只需要一个最终的确认框,那么这肯定会有助于在回调函数中调用SAVE()函数以进行按钮单击。没关系。

我确实有另一个问题如下: 我想在表单验证中使用此自定义确认框,其中可能有多个案例和方案一个接一个地进行确认。

如果用户在第一次确认框中说“是”,我们希望根据表格数据条件提供第二个确认框。

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