HTMLのinput要素でdisabled属性を使用する場合の注意点と対応方法

HTMLのinput要素にdisabled属性をtrueにセットすると、ユーザが値を編集できなくなるだけでなく、値そのものが使用できなくなります。つまり、submitなどのアクションでも値がサーバに送信されなくなります。

編集させたくないだけが要件の場合には、readonly属性を使用すればいいのですが、tabなどでカーソル移動する際に選択できてしまいます。できれば、カーソル移動の対象からも外したかったのでいくつか、対応方法考えました。

disabledの設定例

対応方法①送信したい値をcookieやsessionやhidden項目に退避しておく

こちらは、disabled属性がセットされたinput項目の値をcookie、session、hidden項目などにセットしてなんとかして、サーバに送信する方法です。しかし、この方法はdisabled属性がtrueの項目が決まっている場合に使える方法で、動的にdisabled属性がセットされる要素が変わる場合には使用できない方法です。

対応方法②代わりにreadonly属性を使用する

readonly属性を使用して、cssを用いてdisabledになっているように見せる方法です。こちらもおすすめですが、これだけのためにcssを書くのが嫌だったので、使用しませんでした。

対応方法③送信直前にdisabled属性をfalseに設定する

値を送信する直前にdisabled属性を解除してしまう方法で、私はこの方法を採用しました。他のモジュールへの影響が一番少なかったからです。(笑)
方法は至ってシンプルで、値を送信するボタンのonclickイベントにdisabled属性を解除する関数をセットしただけです。

 

 

今回はユーザがタブ移動で大量の項目を入力する画面で、カーソル移動の対象にしたくなかったのでdisabled属性を使用しました。そんな要件なけれが、readonly属性で十分です(^∇^)


2015/09/21(月) L’Arc-en-Ciel LIVE 2015 L’ArCASINO セットリスト

ダウンロード

セットリスト

2015.9.22 大阪 夢洲特設会場

01.SEVENTH HEAVEN
02.Link
03.Pretty girl
04.Blurry Eyes
05.flower
06.and She Said
07.ROUTE 666
08.HEAVEN’S DRIVE
09.Wind of Gold
10.ALONE EN LA VIDA
11.MY HEART DRAWS A DREAM
12.trick
13.REVELATION
14.CHASE
15.XXX
16.TRUST
17.Wings Flap
18.Caress of Venus
19.Driver’s High
20.HONEY
21.STAY AWAY
22.READY STEADY GO
23.あなた

会場は遠いし、グッズ買うのも、アトラクションで遊ぶのもなんでも並ぶしでめっちゃ疲れた。。。(´_`)

でもライブは最高でした!新曲もいい感じ!

http://www.larc-en-ciel.com/live2015/

https://www.larc-en-ciel.com/news/detail.php?id=1184


2015/09/06(土) Mr.Children Stadium Tour 2015 未完 セットリスト

x89h56nriee0qcp_questionnaire_photo

セットリスト

2015.9.6 日産スタジアム

1.未完
2.擬態
3.ニシエヒガシエ
4.光の射す方へ
5.CHILDREN’S WORLD
6.運命
7.FIGHT CLUB
8.斜陽
9.I Can Make It
10.忘れ得ぬ人
11.and I love you
12.タガタメ
13.蜘蛛の糸
14.REM
15.WALTZ
16.フェイク
17.ALIVE
18.進化論
19.終わりなき旅
20.幻聴
21.足音 ~Be Strong

[ENCORE]
1.I wanna be there
2.overture~蘇生
3.fantasy
4.Tomorrow never knows
5.innocent world
6.Starting Over

前から20列目くらいで大興奮の3時間半!!ミスチルありがとう!!

http://www.toysfactory.co.jp/artist/mrchildren/reflection/