我希望在客户端单击返回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;
}
答案 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;
}