LoginSignup
8
4

More than 3 years have passed since last update.

aタグにdisabled属性を与えた際のIEとChromeで挙動の差

Last updated at Posted at 2017-07-14

aタグにdisbled属性

多くの場合、ブラウザ上でボタンを表示する時はbuttonタグを使用すると思う。
buttonの形にとらわれずにcssにより自由なデザインでボタンを配置したい場合、aタグをデフォルトの挙動を排除した状態にしてクリックイベントにやりたい挙動を実装することがあると思う。
このようにして作成したaタグのボタンを非活性とするためdisabled属性を設定した際に、IEとChromeで挙動が異なることに気付いたためメモ。

実行環境

  • OS:Windows(7、10)
  • ブラウザ:IE(10、11)、Chrome
  • その他:HTML5、CSS3、Jersey(サーバ側フレームワーク Strutsベース)

IEの挙動

狙った通りの挙動。
クリックしてもクリックイベントにしかけた処理は呼び出されない。
見た目は変わらないため、disabled属性が存在する場合のスタイルを定義する必要がある。

Chromeの挙動

クリックするとクリックイベントにしかけた処理が呼び出されてしまう。
IE同様見た目は変わらないため、disabled属性が存在する場合のスタイルを定義する必要がある。

aタグにdisabled属性はない!

調べたところ、aタグにはdisabled属性はないとのこと。。。
参照:https://developer.mozilla.org/ja/docs/Web/HTML/Element/a

IEでdisabled属性が効いているのは、IEが独自路線を突っ走っているからと思われる。。。

aタグを非活性にするには

そんなわけで、非活性にするのは多くのブラウザでタグの指定では実現できないため、javascriptで動的に非活性としてあげる必要がある。
(クロスブラウザ対応が不要で対応ブラウザがIEのみの場合は問題ないかもだが、いつ独自実装を変更するか分からないのでIEのみ対応でもjavascriptを使って実装するのが無難と思われる。。)

8
4
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
8
4