单击时禁用按钮

Hit*_*itz 14 javascript asp.net jquery

我有一个按钮控件.一旦用户点击它,就会触发click事件,然后该按钮应被禁用.我怎样才能做到这一点?我可以选择使用JQuery或JavaScript或两者.

这是我的按钮声明:

<asp:Button 
  ID="Button1" 
  runat="server" 
  Text="Click Me" 
  onclick="Button1_Click"
/> 
Run Code Online (Sandbox Code Playgroud)

在后面的按钮单击代码上,我添加了一个Response.Write().应该执行该操作然后应该禁用该按钮

Dav*_*ard 31

无论出于何种原因,HTML规范规定禁用的元素不应包含在POST请求中.因此,如果您使用JavaScript来禁用客户端onclick事件中的HTML元素,那么当浏览器组装POST请求时,将禁用输入元素,服务器将无法正确通知哪个元素引发了回发,并且赢了不要点击服务器端点击事件处理程序.

当您将UseSubmitBehavior属性设置为false时,ASP.NET将呈现类型为button的输入元素,而不是ASP.NET Button控件通常生成的类型为submit的常规输入.这很重要,因为单击按钮元素不会触发浏览器的表单提交事件.

ASP.NET将在该按钮元素的onclick处理程序中呈现对__doPostBack()的客户端调用,而不是依赖于浏览器表单提交.无论请求中的POST数据是什么,__ doPostBack都会显式提升回发.

在独立于浏览器提交事件的情况下引发回发,您将获得前面提到的HTML怪癖.然后,您可以设置OnClientClick"this.disabled = true;",它将呈现为"this.disabled = true; __doPostBack('Button1','');",并且事情将按预期工作.


Jim*_*uts 9

添加OnClientClick ="this.disabled = true;" 到你的按钮.

如果您使用的是Asp.net Ajax,您可能需要查看使用PostBack Ritalin.

  • 您还需要UseSubmitBehavior ="false".请参阅http://stackoverflow.com/questions/400616/why-doesnt-my-form-post-when-i-disable-the-submit-button-to-prevent-double-click (5认同)