如何取消由按下按钮栏引起的提交事件
本文关键字:按钮 事件 提交 何取消 取消 | 更新日期: 2023-09-27 18:00:03
我使用的是ASP数据网格,并且我有一个ButtonColumn。当按钮呈现到页面时,它是提交类型的输入。所以这是一个提交按钮。该按钮用于删除记录。但是我想要一些javascript来确认用户想要删除记录。我遇到的问题是,即使我从confirm方法返回false,提交事件仍然会发生。。。
以下是为点击事件分配javascript方法的服务器端代码:
Button deleteButton = e.Item.Cells[6].Controls[0] as Button;
if (deleteButton != null)
{
deleteButton.OnClientClick = "confirmDelete()";
}
以下是创建数据网格的ASP.net代码:
<asp:DataGrid
runat="server"
ID="UsersList"
OnItemCommand="UsersList_ItemCommand"
AutoGenerateColumns="false"
HeaderStyle-CssClass="dataTableHeader"
Width="60%">
<Columns>
<asp:HyperLinkColumn DataNavigateUrlField="Username" DataTextField="Username" HeaderText="Username" DataNavigateUrlFormatString="~/Account/EditUser.aspx?user={0}"/>
<asp:BoundColumn DataField="Email" HeaderText="Email" />
<asp:ButtonColumn Text="Delete" HeaderText="Delete" ButtonType="PushButton" CommandName="DeleteUser" CausesValidation="false" />
</Columns>
</asp:DataGrid>
以下是确认删除的Javscript代码:
<script>
function confirmDelete() {
var x = confirm("This action cannot be undone. Are you sure you want to delete this user?");
return x;
}
</script>
也许使用ButtonColumn无法实现这一点。我正在考虑换成TemplateColumn,然后在里面放一个按钮。但是,我将不得不重新设计在后端处理这些单击事件的代码,该代码目前在ItemCommand处理程序中处理。
尝试:
deleteButton.OnClientClick = "return confirmDelete()";
您需要在form.submit()上确认删除,而不是在deletebutton.click()上,但您需要通过deletebutton_.click(。验证失败后,不要忘记清除变量/或anon函数。
将按钮上的onclick监听器替换为表单上的onsubmit监听器,如果您不想提交表单,该监听器将返回false,类似于:
<form onsubmit="return confirmDelete();" ...>
如果confirmDelete返回false,则提交被取消。如果返回任何其他值,则提交表单。