使用jConfirm在最终用户确认后点击Fire服务器

时间:2015-07-07 06:42:18

标签: jquery asp.net

我希望在客户端单击返回true后触发按钮上的服务器单击事件。客户端点击事件处理程序从最终用户获得确认对于最终用户的确认,我正在使用jConfirm。但是,问题是服务器点击事件被触发而不管最终用户的确认。如果我使用javascript确认对话框,它会按预期工作。

在最终用户确认后,我需要做什么才能触发服务器点击事件?

<asp:Button ID="Button1" runat="server" Text="ADD" OnClick="btnAdd_Click" ValidationGroup="Add" CausesValidation="true" OnClientClick="return Validate()" />


 function Validate() {
         alert(Page_ClientValidate('Add'));
         if (Page_ClientValidate('Add')) {
             if ($('#<%=ddlTestField.ClientID%>').val() == '0') {
                //return confirm("Select Confirm to apply this approval flow rule to all SOW requisition types. Otherwise, hit Cancel and select a specific requisition type for the approval flow rule.");
                 var strMessage = 'Continue?';
                 $.alerts.okButton = 'OK';
                 $.alerts.cancelButton = 'CANCEL';
                 return jConfirm(strMessage, 'CONFIRM MESSAGE', function (r) {

                    return r;
                });
            }
            return true;
        }
        return false;
    }

2 个答案:

答案 0 :(得分:0)

因为jConfirm Ok / Cancel click是一个单独的事件。 Button1 Click不等待jConfirm对话框。

现在在Button1上单击show jConfirm对话框并返回true,以便页面回发。

使用普通的html按钮并在此按钮的点击事件上显示jConfirm,并在确认呼叫后点击asp:按钮。

<input type="button" onclick="Validate();" value="ADD" />
   <asp:Button ID="Button1" runat="server" Text="ADD" style="display:none;" OnClick="btnAdd_Click" ValidationGroup="Add" CausesValidation="true"  />


function Validate() {
     alert(Page_ClientValidate('Add'));
     if (Page_ClientValidate('Add')) {
         if ($('#<%=ddlTestField.ClientID%>').val() == '0') {
            //return confirm("Select Confirm to apply this approval flow rule to all SOW requisition types. Otherwise, hit Cancel and select a specific requisition type for the approval flow rule.");
             var strMessage = 'Continue?';
             $.alerts.okButton = 'OK';
             $.alerts.cancelButton = 'CANCEL';
             return jConfirm(strMessage, 'CONFIRM MESSAGE', function (r) {

                $("#<%=Button1.ClientID%>").click();
            });
        }
        return true;
    }
    return false;
}

答案 1 :(得分:0)

找到解决方案

function Validate() { 
     var HasConfirmed = false;
     if (Page_ClientValidate('Add')) {                
         if ($('#<%=ddlTestField.ClientID%>').val() == '0') {
             var strMessage = 'Continue?';
             $.alerts.okButton = 'OK';
             $.alerts.cancelButton = 'CANCEL';
             jConfirm(strMessage, 'CONFIRM MESSAGE', function (r) {
                    HasConfirmed = r;
                    if (r) {
                        <%= Page.ClientScript.GetPostBackEventReference(Button1, String.Empty) %>;
                    }
                    return HasConfirmed;
                });
            }
            else {
                return true;
            }
        }
        return HasConfirmed;

}