作成しているwebアプリで、ユーザーに都道府県名を選択してもらうページを作成しています。
アプリはDjango(Python)で作成しており、下記のHTMLを吐き出しています。
html
1<select class="form-control" id="prefecture" name="prefecture" size=5> 2<option value="1">北海道</option> 3<option value="2">青森県</option> 4<option value="3">岩手県</option> 5<option value="4">宮城県</option> 6<option value="5">秋田県</option> 7… 8</select>
ここまではこれで良いのですが、データを修正してもらう場合の利便性のために、既に選択した都道府県名のoptionタグにselected属性がつくようにしました。
例えば、東京都を選択した人がデータを修正する場合、
HTML
1… 2<option value="13" selected>東京都</option> 3…
というHTMLが吐き出されるようにしました。
問題は、selectタグ内のoptionが、value順に並び替えられてしまうので、毎回北海道から順に見ていかなければならなくなってしまう点です。
セレクトボックスは、上から5つの都道府県が表示され、スクロールしなければその下の都道府県を見ることができません。
私としては、下記の2つのいずれかの実装ができればと考えています。
①optionは北海道から順に並べられるが、表示されている画面上、東京都がセレクトボックス上に表示されている。
ページを読み込んだ時のセレクトボックスが下記のようになっている。
… (スクロールで表示される)
東京都
神奈川県
新潟県
富山県
石川県
… (スクロールで表示される)
または、
②東京都が先頭になって、その後、北海道から順に並べられる。
ページを読み込んだ時のセレクトボックスが下記のようになっている。
東京都
北海道
青森県
岩手県
宮城県
… (スクロールで表示される)
理想を言えば、①の実装の方が望ましいのですが、難しければ②の実装をしたいです。
①は、jQueryでそのようなプラグインがないか調べてみたのですが、見つかりませんでした。
teratailのプロフィール編集画面でも、「東京都」を選択していれば、編集時にも「東京都」が表示されるようになっていますが、どのように実装されているのか、分かりませんでした。
②は、optionの並び方が、value順ではなく、selectedがついたものを先頭に並べる方法が見つかればいいのですが、分かりませんでした。
①でも②でもよいので、どのような方法で実装すればよいかお分かりの方、ご教示頂ければ幸いです。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/06/22 12:06