1

如何根据条件禁用超链接

 var mydiv = document.getElementById("myDiv");      
 var aTag = document.createElement('a');       
 aTag.setAttribute('href',"yourlink.htm");        
 aTag.innerHTML = "link text";      
 mydiv.innerHTML="";      
 mydiv.innerHTML=aTag;  

说我需要在这里禁用我的 aTag。

根据登录用户,我需要禁用或启用..

4

2 回答 2

2

您可以通过设置 disabled 属性来禁用链接(在锚元素上无效,尽管它在某些情况下有效)。

锚点上禁用属性的测试设置:http: //jsfiddle.net/TgjnM/

最好,您可以完全删除链接并将其替换为其中包含的文本。要将链接替换为纯文本,您可以将 innerHTML of 设置mydiv为文本(从而删除超链接)。

如果可以打开/关闭链接,请考虑@Oleg V. Volkov 在评论中建议的表单元素(不是超链接)。如果这是一次性决定(即每页不会发生多次),我会用文本替换链接。

根据登录用户,我需要禁用或启用..

在这种情况下,我会在服务器上以不同的方式呈现页面,而不是在 Web 浏览器中。

于 2012-08-10T11:39:30.527 回答
2

这应该工作

 if(condition)
     disableLink();
else
   showLink();



function disableLink()
        {

        document.getElementById('Link1').disabled=true;
        document.getElementById('Link1').removeAttribute('href');    
        document.getElementById('Link1').style.textDecoration = 'none';
        document.getElementById('Link1').style.cursor = 'default';
        }

        function showLink()
        {
            document.getElementById('Link1').disabled=false;
        //assign href dynamically
        document.getElementById('Link1').href = "somepage.html";
        document.getElementById("Link1").style.textDecoration = "underline";
        document.getElementById("Link1").style.cursor = "hand";
        }
于 2012-08-10T11:48:00.407 回答