【发布时间】:2015-09-25 00:19:53
【问题描述】:
对于某些特定条件,我需要在客户端点击事件中触发服务器点击事件。我知道,如果客户端单击返回 true,则触发服务器单击事件。 OnClientClick 我正在显示一个 jConfirm。当 jConfirm 返回 true 时,我想触发服务器单击同一按钮。我正在尝试这个:
<asp:Button ID="Button1" runat="server" Text="ADD" OnClick="btnAdd_Click" ValidationGroup="Add" CausesValidation="true" OnClientClick="return Validate()" />
function Validate() {
if (Page_ClientValidate('Add')) {
if ($('#<%=ddlTestField.ClientID%>').val() == '0') {
var strMessage = 'Continue?';
$.alerts.okButton = 'OK';
$.alerts.cancelButton = 'CANCEL';
jConfirm(strMessage, 'CONFIRM MESSAGE', function (r) {
if(r)
{
$('#<%=Button1.ClientID%>').unbind("click"); // To unbind the client event
$('#<%=Button1.ClientID%>').click(); // To fire the server click event, But it is firing the client click also. A loop goes on
}
});
}
return true;
}
return false;
}
【问题讨论】:
-
当您使用
asp.net事件时,我建议您使用两个按钮来执行此操作 -runat=server一个隐藏,一个客户端专用,一个调用您的btnAdd_Click然后调用 $( "Button1").click()` -
@freedomn-m 目前我正在按照您所说的方式进行管理。但是,这是唯一的方法,添加一个额外的 html 按钮并隐藏 asp 按钮吗?
标签: javascript jquery asp.net controls