'How to disable link button after click (no JQuery)
I want to disable link button after user click on it.
But I made something wrong here.
Button is still enabled after click. What am I doing wrong?
<asp:LinkButton ID="submit" runat="server"
CssClass="button"
Text="OK"
OnClick="Submit_Click"
OnClientClick="this.disabled=true">
</asp:LinkButton>
Solution 1:[1]
Just give return false;
to your JavaScript. The reason is that your asp:LinkButton
is getting rendered like this.
<a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$submit','')"
class="button"
id="ContentPlaceHolder1_submit"
onclick="this.disabled = true;return false;">
OK</a>
So, if you do not give return false, these things happens
- It fires the onclick event
and disables the anchor tag.(anchor tag does not have a disabled property.button
andinput type="submit"
has that property.) - It moves on to fire the postback and hits the server side click event
- As there is a postback, the client side JavaScript disabling wont persist (even if it were a button)
By enforcing return false
you are asking the asp:LinkButton
not to do anymore processing.
P.S: I have been using PostBack Ritalin to prevent multiple clicks on asp:Button
. IMO, its definitely worth a look in this case.
Solution 2:[2]
Use the javascript debugger to check the method is being called. LinkButtons are server generated javascript powered anchor tags & therefore can be tricky.
Solution 3:[3]
Try this java script function ,
On your OnClientClick
<asp:LinkButton ID="submit" CssClass="button" Text="OK" onclick="myButtonId_Click(this);return false;" ></asp:LinkButton>
add function ,
protected void myButtonId_Click(target) {
target.disabled = true;
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | |
Solution 2 | Simon Halsey |
Solution 3 |