- ベストアンサー
SELECT要素について
質問というより、アンケート的ですが、SELECTの子要素のOPTIONのデフォルト状態を指定するような、default属性のような機能が欲しいと思うことはありませんか? たとえばこのような使い方です。 <select default="13"> … <option value="12">千葉県</option> <option value="13">東京都</option> <option value="14">神奈川県</option> … </select> サーバーサイドのスクリプトでoption要素を動的に出力するときにコードを書くのもらくだと思うのです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
たとえば、サーバーサイドでselectedを指定する場合、ループの中でいちいち値を判定するのがめんどくさいな。という意味でしょうかね。たしかに、親要素のdefault属性なりに値を設定することができたら、ループ判定いらなくなって楽ですよね。ただ、一度selectを出力するメソッドを組んでしまえば、特別な問題にはならないような。。 MVCとじゃなくて、処理速度の問題を言ってるの?
その他の回答 (2)
- ORUKA1951
- ベストアンサー率45% (5062/11036)
当然ご存知でしょうが、optionには、selected属性があります。 仕様書には明記されていませんが、selectrd要素は書くべきとされています。 17.6.1 選択済み選択肢 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/interact/forms.html#h-17.6.1 ) サーバーサイドでプログラムを組むときも事前に <select name="ken"> <option value=12" $selected_KEN[12]>東京 <option value=13" $selected_KEN[13]>神奈川 <option value=14" $selected_KEN[14]>埼玉 ・・・ </select> とかしておくので、不便はまったく感じません。
お礼
そういう仕様を策定してもいいんじゃないか?という意味です。
- _if_
- ベストアンサー率52% (26/50)
一応、selectedにすればデフォルトで指定はできますね。 <select> … <option value="12">千葉県</option> <option value="13" selected="selected">東京都</option> <option value="14">神奈川県</option> … </select> サーバーサイドですることを考えると selectedid = 13 for(i:0->n) { print : <option value="(i+1)"; if(selectedid) print : selected="selected"; endif print : > (arr[i]) </option>; } のようなイメージでしょうか。
お礼
ありがとうございました
補足
いえいえ、一応WEBプログラミングで飯食っているので、プログラミングの作法を聞いているわけではないんですよ。 提案とでも言ったらいいのでしょうか。 MVCでプログラミングするときにその方が楽だと思うんですよね。
お礼
ありがとうございました
補足
例えがあまり良くなかったかもしれませんが、その通りです。MVCで記述するときというより、Ajaxを使った連動するSELECT要素などでは便利になると思うんですよね。「都道府県」→「市区町村」のようなものです。