0

我正在使用 jquery 对话框。当我单击按钮弹出窗口打开但它返回 true 并执行按钮的服务器端事件。

我想当用户点击是然后返回true,否则返回false。

    function btnCancelClick()
            {
                $("#dialog:ui-dialog").dialog("destroy");

                $("#dialog-confirm").dialog({
                    resizable: false,
                    height: 140,
                    width: 400,
                    modal: true,
                    buttons: {
                        "Yes": function ()
                        {                       
                            $(this).dialog("close");
                                  return true;
                        },
                        No: function ()
                        {                       
                            $(this).dialog("close");
                                return false;
                        }
                    }

                });             
            }

    <asp:Button ID="btnCancel" runat="server" Text="Cancel Appointment" CssClass="cssbutton"
                                    OnClientClick="return btnCancelClick();" OnClick="btnCancel_Click" />
4

2 回答 2

2

不能 return从对话框中。

您必须使用回调函数。

$("#dialog-confirm").dialog({
    resizable: false,
    height: 140,
    width: 400,
    modal: true,
    buttons: {
        Yes: function() {
            $(this).dialog("close");
            clickedYes(); //YES CALLBACK
        },
        No: function() {
            $(this).dialog("close");
            clickedNo(); //NO CALLBACK
        }
    }
});
于 2012-07-13T13:17:41.530 回答
1

更新您的btnCancelClick方法以始终返回 false。然后在对话框按钮处理程序中,而不是 return true 或 false 在那里做你的回发。

function btnCancelClick() {
    $("#dialog:ui-dialog").dialog("destroy");

    $("#dialog-confirm").dialog({
        resizable: false,
        height: 140,
        width: 400,
        modal: true,
        buttons: {
            "Yes": function () {
                $(this).dialog("close");
                <%=ClientScript.GetPostBackEventReference(btnCancel, "")%>;
            },
            No: function () {
                $(this).dialog("close");
            }
        }
    });
    return false;
}

这一行:

<%=ClientScript.GetPostBackEventReference(btnCancel, "")%>

将 javascript 回发调用注册到您的btnCancelClick方法中。

于 2012-07-13T13:49:14.297 回答