13

I have to disable anchor link depending on a condition if some data comes to that field it should work as a hyperlink and if that data does not come then the link should not be there? Any ideas on this are welcome.

Jakub Hampl
  • 38,520
  • 9
  • 73
  • 103
krishna
  • 145
  • 1
  • 2
  • 4

5 Answers5

24

Case 1:

To disable:

document.getElementById(id).style.pointerEvents="none";
document.getElementById(id).style.cursor="default";

To enable:

document.getElementById(id).style.pointerEvents="auto";
document.getElementById(id).style.cursor="pointer";

Case 2:

If you want the link to be gone (not just disable it):

document.getElementById(id).style.display="none";

to get it back:

document.getElementById(id).style.display="block"; //change block to what you want.

Case 3:

If you want to hide it preserving the space for it:

document.getElementById(id).style.visibility="hidden";

To get it back:

document.getElementById(id).style.visibility="visible";
delliottg
  • 3,732
  • 2
  • 35
  • 48
Jahid
  • 19,822
  • 8
  • 86
  • 102
  • 2
    This is nice because it works in cases where you have an href or an onclick. – MDM Jul 16 '18 at 18:18
  • you rock to the mx Jahin Saab. This is the only solution that worked for me. Would love if someone can explain why the prop(disable...) method doesn't work for anchors. – Desper Mar 18 '22 at 08:09
19

I couldn't make sense of your question body, so I'll answer your question's title...

How to disable anchor using javascript ?

JavaScript

if (condition) {
    document.getElementsByTagName('a')[0].removeAttribute('href');
}

jQuery

...because everyone uses it, right?

if (condition) {
    $('a').first().removeAttr('href');
}
Matt
  • 72,564
  • 26
  • 147
  • 178
alex
  • 460,746
  • 196
  • 858
  • 974
2

with jQuery

if(!data){
  $('#linkID').click(function(e) {
    e.preventDefault();
  });
}

with Prototype

if(!data){
  $('linkID').observe('click', function(event) { event.stop() });
}
Mithun Sreedharan
  • 47,989
  • 69
  • 178
  • 233
1
<a href="javascript:check()">my link</a>

function check(){
var data =document.getElementById("yourdatafield").value;
if(data)
  window.location="your_link_location";

}
Anupam
  • 7,870
  • 3
  • 42
  • 62
-3

With jQuery:

To disable:

$('#anchor_tag').attr("disabled", true);

To enable:

$('#anchor_tag').attr("disabled", false);
Jon Surrell
  • 8,854
  • 7
  • 47
  • 53
Maria
  • 11
  • 1