我有一个 asp.net 页面。&我正在从这里使用 jquery 确认插件。 https://craftpip.github.io/jquery-confirm/
我希望当用户单击按钮时,系统会提示他们输入确认对话框,并且当他们说确认时,只有这样我在服务器上的按钮单击才会被触发。我不想使用window.confirm
对话框。
我能够通过 Button 的ClientClick
属性手动使用 jquery 确认和调用回发。
事件__doPostBack
正在触发。但是,该按钮在服务器端的单击事件不会被触发。
我错过了什么?
ASPX 代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Tester.aspx.cs" Inherits="BLF_Gauri.Tester" %>
<html>
<head>
<script src="Scripts/jquery-2.1.0.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.2.3/jquery-confirm.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.2.3/jquery-confirm.min.js"></script>
</head>
<body>
<form runat="server">
<asp:Button ID="Button2" runat="server" Text="YEs" OnClick="Button2_Click"
OnClientClick="return TestClick(this);" />
</form>
<script type="text/javascript">
function TestClick(x)
{
jQuery.confirm({
title: 'Confirm!',
content: 'Simple confirm!',
buttons: {
confirm: function () {
__doPostBack("'" + x.id + "'", 'OnClick');
},
cancel: function () {
// Do Nothing
}
}
});
return false;
}
</script>
</body>
</html>
背后的代码:(简化)
protected void Page_Load(object sender, EventArgs e)
{
//IT COMES HERE.
}
protected void Button2_Click(object sender, EventArgs e)
{
//IT DOES NOT COME HERE.
}