プロが教えるわが家の防犯対策術!

<select> をmultiple にしている場合で、指定したサイズより、optionが多い場合には、
スクロールバーが出ると思いますが、
下の方のoptionでスクロールしないと見れない項目を初期選択状態にしても、
最初にリストを表示したときには、スクロールが一番上にある状態で、
初期選択されているoptionが見えない状態になってしまいます。

multipleではないときは、初期選択状態のoptionのところまでスクロールバーが移動していて、
リストを表示したときには、スクロールバーを移動しなくても、初期選択のoptionを見ることができます。

【▼初期選択が見れるようにスクロールが移動している】
<HTML>
<SELECT name="color" size=6 >
<option value="red"> 赤
<option value="blue"> 青
<option value="yellow"> 黄
<option value="white" > 白
<option value="black"> 黒
<option value="purple"> 紫
<option value="orange"> オレンジ
<option value="pink"> ピンク
<option value="gold"> ゴールド
<option value="silver" selected> シルバー
</SELECT>
</HTML>

【▼初期選択が見えない。スクロールが一番上にある】
<HTML>
<SELECT name="color" size=6 multiple>
<option value="red"> 赤
<option value="blue"> 青
<option value="yellow"> 黄
<option value="white" > 白
<option value="black"> 黒
<option value="purple"> 紫
<option value="orange"> オレンジ
<option value="pink"> ピンク
<option value="gold"> ゴールド
<option value="silver" selected> シルバー
</SELECT>
</HTML>

A 回答 (2件)

multipleの場合「複数選択可能」なので、必ずしも、一つだけ選択状態になっているわけではないのでは?


同時に表示できない、2つが選択されている場合はどうするのでしょうか?
もし、初期状態が必ず一つ選択で、それを表示させておきたいというのであれば、No1様の回答のように最初に書いておけばよさそうですね。
optionの順番を変えてもよいのであれば、スクリプトで選択されている項目(複数可)を先頭に移動するとか?


実際には、ご提示の後半のソースのままで、fx(3.5)やOpera(10)では初期表示で「シルバー」の部分が表示された状態になりますけれど?
    • good
    • 1

単に


<option value="silver" selected> シルバー
を<option>の先頭に書けば、よいだけじゃない。

それとも、毎回先頭の項目を変えたいという希望?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!