LoginSignup
5
5

More than 3 years have passed since last update.

<a>タグのリンクを無効化するには?

Last updated at Posted at 2020-06-24

aタグにはdisable属性がない

Chromeの場合、<input> <textarea> <select>タグなどはdisabledを書けば非活性になりますが、<a>タグにはdisable属性がないので利きません。

aタグのリンクを無効化するには?

css
 pointer-events:none;

上記で非活性化することができます。
<img>タグも同様です。

ある条件のときだけ複数の項目を一括で非活性にするには?

そういう場合はJavaScriptを使います。
変更したい項目を<div>で囲み、idを付与します。

タグ名で要素を指定することで、項目を複数取得することが出来ます。
【document.getElementById("ID名").getElementsByTagName("input")

それをFor文で回して各項目ごとにdisable属性や、css.Style属性を付与していきます。

JavaScript
window.onload = function(){
    var flg = $("#modeflg").val();
/*条件*/
    if(flg == "2"){     
        var inputItem = document.getElementById("changeDisable").getElementsByTagName("input");
        for(var i=0; i<inputItem.length; i++){
          inputItem[i].disabled = true;
        }
        var inputItem = document.getElementById("changeDisable").getElementsByTagName("textarea");
        for(var i=0; i<inputItem.length; i++){
          inputItem[i].disabled = true;
        }
        var selectItem = document.getElementById("changeDisable").getElementsByTagName("select");
        for(var i=0; i<selectItem.length; i++){
          selectItem[i].disabled = true;
        }
        var selectItem = document.getElementById("changeDisable").getElementsByTagName("a");
        for(var i=0; i<selectItem.length; i++){
            selectItem[i].style.pointerEvents = 'none';
        }
        var selectItem = document.getElementById("changeDisable").getElementsByTagName("img");
        for(var i=0; i<selectItem.length; i++){
            selectItem[i].style.pointerEvents = 'none';
        }
    }
};

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5