如何在首次提交后立即禁用 ASP.NET 按钮(在客户端上)
How to disable an ASP.NET Button right after first submit (on the client)?
我有一个提交按钮。单击此按钮后,将提交表单。我想防止用户多次单击它。所以在客户端点击
我正在使用像这样禁用按钮的功能,
$("#btn123").attr("disabled", "disabled");
但现在的问题是我的表格没有提交。
即使我从我的 javascript 函数返回 true。以下是我的JavaScript函数
function ab() {
$("#btn123").attr("disabled", "disabled");
return true;
}
我也在使用母版页。
我认为
问题是它需要绑定到表单的提交。以下代码将解决此问题。
$("#formId").submit(function(){
$("#btn123").attr("disabled", "disabled");
})
按钮未触发回发,因为您已禁用此功能。避免多个回发的方法是并排使用两个按钮。真实而虚假。第一次单击时隐藏/删除真实按钮并显示虚拟按钮
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" ClientIDMode="Static" OnClientClick="disableButton();"/>
<asp:Button ID="ButtonDummy" runat="server" Text="Button" ClientIDMode="Static" OnClientClick='return false;' style="display:none;"/>
和JS:
function disableButton() {
$("#Button1").hide();
$("#ButtonDummy").show();
return true;
}
对于我期望非常普遍的事情来说,这是令人惊讶的晦涩难懂。如果在单击按钮后禁用该按钮,它将阻止回发发生。即使@Rajdeep建议在表单的提交事件中禁用它,也对我不起作用。
我发现最好的方法是设置按钮的UseSubmitBehavior="false":
<asp:Button ID="btn123" UseSubmitBehavior="false" OnClientClick="ab()"
OnClick="btn123_Click" runat="server" />
这将导致服务器修改按钮的 OnClick 事件以包含启动回发的 JavaScript 调用,因此在浏览器中如下所示:
OnClientClick="ab();__doPostBack('ctl00$btn123','')"
这将导致在调用函数 ab() 后发生回发,即使 BTN123 最终被禁用也是如此。
相关文章:
- ASP.NET通过单击JavaScript按钮触发c#事件
- 如何在asp.net上应用javascript按钮点击
- 如何在ASP.NET中单击按钮后激活启动选项卡
- 如何在重定向到asp.net中单击按钮的下一页之前应用javascript警报
- 如何在asp.net按钮上显示Bootstrap Autocloseable警报消息
- 如何使用按钮'的OnClientClick属性,以便在ASP.NET中运行一些多个JavaScript函数
- Asp.net按钮事件点击不做回发.有可能吗
- 在ASP.Net C#中单击按钮张贴对话框
- 在ASP.NET中单击“提交”按钮时,使表单不刷新
- 在SweetAlert中传递ASP.NET按钮单击事件
- 仅当条件为真时,才将客户端单击确认添加到 asp.net 按钮
- 在 asp.net 回发期间禁用和启用按钮
- 如何禁用导致在ASP.NET UpdatePanel上返回的提交按钮
- 按钮的点击事件是't在asp.net中触发
- 使用数据寻呼机在 asp.net 分页 - 下一个,上一个按钮
- ASP.NET 显示单选按钮列表和下拉列表的进度条/加载
- 想要清除文本框+聚焦文本框+阻止asp.net在同一按钮上回发
- ASP.NET ListView选项卡事件触发验证按钮
- 如何在单击asp.net按钮时自动单击html按钮
- 在表单提交后启用文本框和按钮.Net MVC 4