5

I have a link button in the page like:

<asp:LinkButton ID="edit" runat="server" OnClick="edit_Click" Enabled="False">ویرایش</asp:LinkButton>

I want Enable/Disable this in javascript.

I use this code but set visible

var objedit = document.getElementById('<%= edit.ClientID.ToString() %>');
objedit.style.display = "none";

I use this code but not enable

if (count == 1) {
    objedit.disabled = false;
} else {
    objedit.disabled = true;
}

I can click but link button is disabled.

enter image description here

palaѕн
  • 72,112
  • 17
  • 116
  • 136
ar.gorgin
  • 4,765
  • 12
  • 61
  • 100

5 Answers5

1

So, is this what you want?
http://jsfiddle.net/hzaR6/
http://jsfiddle.net/hzaR6/2/ -- UPDATED, tested in Chrome and Firefox

The UPDATED way

You can use a class name to define disabled element, for which you can have more control on their styles ... etc.

$("#link").toggleClass("disabled"); //This will simply toggle the class

and for the css

#link.disabled{
    z-index:-1;            /*Make it not clickable*/
    position:relative;
    opacity: .5;           /*Lighter*/
}​

You can do whatever you want here.

The good old form element way

$("#edit").attr("disabled", false);
 -or-
document.getElementBy("edit").disabled = false;

This will disable any form element. If you want to enable them, just change false to true.


var a = document.getElementBy("edit").disabled;

a will be true if the element is disabled. Otherwise it will be false.

Derek 朕會功夫
  • 92,235
  • 44
  • 185
  • 247
  • 1
    I had the same thought, but this solution doesn't work on asp.net link buttons (they are just hyperlinks with javascript attached to their onclick handlers) see here: http://jsfiddle.net/hzaR6/1/. – Daniel Szabo Apr 08 '12 at 06:04
  • @Derek - you're right. If the OP wants to disable a linkbutton via javascript, he either needs to change the onclick event or the linkbutton itself, or use an asp:button instead (in which case, your solution would work). – Daniel Szabo Apr 08 '12 at 06:27
1

This link should give you everything you need. You can't really "disable" a linkbutton because its just a link with some javascript attached. Basically, you need to reassign the click handler to something that returns void or false.

You can refer to the ID of the link with the following script:

<script runat="server">
   var a = document.getElementById('<%= edit.ClientID.ToString() %>')
</script>
Community
  • 1
  • 1
Daniel Szabo
  • 7,181
  • 6
  • 48
  • 65
1

To disable element:

document.getElementById('<%# edit.ClientID %>').disabled = 'disabled';
//.ToString() is not necessary; ClientID is a string.

To re-enable:

document.getElementById('<%# edit.ClientID %>').disabled = '';

Of course, it can be done after document (DOM) is loaded.

Alex Kudryashev
  • 9,120
  • 3
  • 27
  • 36
0

try this

var objedit = document.getElementById("edit"); //not editid (editid is a variable)
objedit.disabled = true; //if I'm not mistaken its true/false or disabled
Peter Wateber
  • 3,824
  • 4
  • 21
  • 26
  • I use this code but linkbutton is disable . I mean, the buttons on the form is displayed. – ar.gorgin Apr 08 '12 at 05:43
  • Ok , i use this code . i can click on button but linkbutton is displayed. – ar.gorgin Apr 08 '12 at 05:47
  • 1
    wait man, i don't seemed to understand what you wanted to do, can you please clarify your question? – Peter Wateber Apr 08 '12 at 05:49
  • Plz show picture. I use this code(objedit.disabled = false;). but Edit Item is displayed .it should display like 'New Item' – ar.gorgin Apr 08 '12 at 05:53
  • you don't disabled it you remove it "(objedit.disabled == false) ? NewItem.style.display = none : NewItem.style.display = block; "where your NewItem is the Id of your New Item." .. I really don't get what are you trying to do – Peter Wateber Apr 08 '12 at 06:01
0
document.getElementById("lnk").style.display = "none";
NathanOliver
  • 171,901
  • 28
  • 288
  • 402