2012-08-10 40 views
0

禁用基於條件的超級鏈接如何禁用基於條件如何通過JavaScript

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的超級鏈接。

基於登錄的用戶,我需要啓用或禁用..

+1

? – 2012-08-10 11:39:33

+0

從UX POV中,用戶幾乎不用於禁用鏈接,因此我建議您不要這樣做。如果你需要禁用的東西,它很可能應該是按鈕。 – 2012-08-10 11:43:21

回答

1

這應該基於什麼條件

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"; 
     } 
+0

如果我沒有錯Link1是超鏈接的權利的權利?但在上面顯示的示例代碼中,我需要禁用aTag鏈接。我嘗試了上面提供的代碼,但它沒有影響。請建議。 – pavan 2012-08-10 12:29:03

+0

你得到任何錯誤???? ..做一個小提琴和放下鏈接..將幫助你... – thecodejack 2012-08-13 06:48:00

+0

是不是「動態分配href」有點模糊?當您調用removeAttribute時,您將失去目標URL,那麼如何在showLink調用中恢復它?擦拭之前如何儲存它?可能比src有更好的屬性,但它對我有效: document.getElementById('Link1')。src = document.getElementById('Link1')。href; – DJDave 2017-05-06 18:20:22

2

您可以通過設置禁用屬性禁用鏈接(不是錨元素有效,但它在某些情況下)。

測試設置爲禁用屬性上的錨:http://jsfiddle.net/TgjnM/

最好,你可以完全刪除鏈接,並與它包含的文本替換它。要用純文本替換鏈接,可以將mydiv的innerHTML設置爲文本(從而刪除超鏈接)。

如果可以打開/關閉鏈接,請將表單元素(而不是超鏈接)視爲@Oleg V. Volkov在評論中提出的建議。如果是一次性決定(即每頁不會發生多次),我會用文本替換鏈接。

基於登錄的用戶,我需要啓用或禁用..

在這種情況下,我會呈現不同的網頁服務器上,而不是在網絡瀏覽器。