プルダウンで都道府県などを入力(選択)するイライラを解消するPrefSupport.js
※) prefSupport内のoptgroupの使い方は間違っています。すいません。
修正版はjQuery.selectable.jsとして書き直しました。jQuery.selectable.jsをごらんください。
イライラ解消シリーズ第2弾(これは続きそう)。
先日のDateSupport.jsに続いて今度はselect拡張を。
要jQuery(古いの 1.1.2あたりの で動くかは微妙)。。用途は主に都道府県選択かなぁ。。
都道府県選択のプルダウンはとにかくうざい、消えてほしい。
そもそも項目多いくせにoptgroup要素がないプルダウンが多すぎる!選びにくいわ!→登録断念。
そんな僕の要望に応えるためにプルダウンのうざいスクロールをなんとかするためのもの。
ついでにoptgroupをもっと使うようになってほしい。
単純に作るだけやとアレなので今回のポイントはもともとあるselect要素を拡張するところにあります。
そもそもselect要素は選択出来るものを限定するところにあるはず。
そんな感じでJavaScriptがOFFの環境ではselectを表示。
使える環境ではうざいプルダウン(select)じゃないスッキリとしたプルダウンを表示。
ただselect要素をdl要素に変換するのでoptgroup要素必須。
というかoptgroupがあれば都道府県じゃなくても使えます。
以下のように必要ファイルを読み込み、(追記@08.07.20)
適用させたいselect要素に適当なid、name(値は同じもの)を割り振り、
classにprefSupportを。
selected属性があればselected属性も(追記@08.07.20)。
※) 下記のoptgroupの使い方は間違っています。すいません。
修正版はjQuery.selectable.jsとして書き直しました。
を
- 北海道
- 北海道
- 東北
-
青森県
岩手県
~
に書き換えて、選択された都道府県のnameをhiddenのvalueに、hrefをtextのvalueに挿入。
なのでプログラムにもばっちり対応のはず。プログラムに対応出来ひんかったらただのうんこやなこれ。。。
UIはDateSupport.jsよりも使いやすくなってるはず。。たぶん。閉じる、キャンセルのボタンあったほうがいいんかな。。
あとinput.prefSupportで入力できないようにしたほうがいいのかもしらん。(修正した@08.07.20)追記
- 08.07.23
-
dl要素で生成されるプルダウンにはクラスprefSupportとidに元になるselect要素のid+_matが付加されるので、
dt要素の幅などを個々に決めたいときはdl#id+_matでスタイルを指定できる。
ex) select#pref の場合 dl#pref_mat になる。 - ついでに、元になるselect要素のクラスを生成されるinput[type="text"](dammyのほう)が継承するので
表示されるinputの幅を決めたい、とかの場合は
ex) select.prefSupport.short とかにしておけば input[type="text"].prefSupport.short になって
スタイルを当てやすいかも。 - 08.07.20 – 3
- 要jQueryを明記してなかった。。
- 08.07.20 – 2
- こうなってくると、タブでのfocusにも対応したほうがいいのかも…?
それすごいメンドイ。どうなんやろう。。
ていうかタブで移動してきたらいろいろ難儀やなー。 - 08.07.20
- システム連携などを考えてinputを選択時にdisabledに。
selected属性に対応。この2つ結構重要やったかも。
select.prefSupportが複数個ある場合の動作バグを修正。
Demoをちょっと修正。 - ラベルからのfocusに対応してないっぽい。。。うっかりしてた。。(修正した@0807.20)
ダウンロード
※) prefSupport内のoptgroupの使い方は間違っています。
修正版はjQuery.selectable.jsとして書き直しました。jQuery.selectable.jsをごらんください。prefSupport.zip(24KB) うちprefSupport.jsは4KB (minは3KB)
- 動作環境
- Windows: IE6, IE7, Firefox3, Opera9.5, Safari3で確認
Leave a comment
Trackbacks: 2
- Trackback URL for this entry
- Listed below are links to weblogs that reference
- プルダウンで都道府県などを入力(選択)するイライラを解消するPrefSupport.js from 5509
-
pingback from links for 2008-07-20 « 個人的な雑記 [...] プルダウンで都道府県などを入力(選択)するイライラを解消するPrefSupport.js « moto-mono (tags: javascript usability) [...]
-
pingback from selectボックスをシンプルなプルダウンに拡張するjQuery.selectable.js « moto-mono [...] 以前作ったprefSupport.jsを使ってて都道府県以外でselect要素を使う機会が多すぎたので 都道府県以外でも使えて、使い勝手を向上させたものをjQuery.selectable.jsとして作り直しました。 (prefSu [...]
Comments: 2 - Leave a comment
ご報告ありがとうございます。
Webkit系でも動作確認しているのですが
こちらで確認したところそのような症状は見れませんでした。
Windows XP: IE6, IE7, Firefox3, Opera9.5, Safari3, Chromeで確認しています。
よければ詳しい利用環境を教えてくださいませんか?
prefSupportはもともと自分用に作ったもので粗もちょこちょこ出てきて
今 機能を増やして、使い勝手も向上させたものに作りなおしてるところです。
近いうちにまた記事にできそうなので、よければそちらもご覧ください。
シンプルで、すごく便利です。ありがとうございます。
Webkit系 (Safari, Google Chrome)では、ページの下に、
都道府県の一覧表が、でてしまいました。
いろいろ触った結果、prefSupport.cssの dl.prefSupportに、
display:none; を加えたら、Webkit系でもきれいに動作するようになりました。
こういう改良でよいのか、わかりませんが、
お役に立てれば幸いです。