我有一个按钮控件.一旦用户点击它,点击事件应该触发,然后按钮应该被禁用.我该怎么做?我可以选择使用JQuery或JavaScript或两者.
这是我的按钮声明:
<asp:Button ID="Button1" runat="server" Text="Click Me" onclick="Button1_Click" />
解决方法
无论什么原因,the HTML spec dictates that disabled elements should not be included in POST requests.因此,如果您使用JavaScript禁用客户端onclick事件中的HTML元素,则当浏览器组装POST请求时,输入元素将被禁用,服务器将不会被正确通知哪个元素提出回发,它不会触发服务器端点击事件处理程序.
当您将UseSubmitBehavior属性设置为false时,ASP.NET将呈现类型按钮的输入元素,而不是ASP.NET Button控件通常生成的类型为submit的常规输入.这很重要,因为单击按钮元素不会触发浏览器的表单提交事件.
而不是依赖浏览器表单提交,ASP.NET将在该按钮元素的onclick处理程序中呈现客户端调用__doPostBack(). __doPostBack将明确提高回发,无论POST数据在请求中发生了什么.
随着回顾被提升,独立于浏览器提交事件,您将被释放前面提到的HTML怪癖.然后,您可以设置“this.disabled = true;”的OnClientClick,它将呈现为“this.disabled = true; __doPostBack(‘Button1’,”);”,并且事情将按预期工作.