リストボックスの内容をスクリプトから選択状態にできますか?その2

[上に] [前に] [次に]
蓮子 [E-Mail] 2000/02/17(木) 15:17:29
<FORM NAME="form1"><SELECT size="1" name="sel1" >
    <OPTION value="ABC">データ1</OPTION>
    <OPTION value="DEF">データ2</OPTION>
    <OPTION value="GHI">データ3</OPTION>
</SELECT></FORM>

の選択項目を、JavaScriptを使って変更したいのですが
どうやたっらできるか教えて下さい。

>../199910/99100326.htm
で同じような質問が有りましたが回答されている内容のリンク先が
切れているので改めて上記の回答をお聞きしたいです。
>../199804/98040035.htm
では
document.form1.sel1.selectedIndex = 3;
で可能と書いてありますが、<OPTION>の順番は変化するため、
VALUEを使って制御したいのです。よろしくお願いします。

コウノトリ 2000/02/17(木) 16:31:40

ここまでしないとダメかも。

<html>
<head>
<title>テスト</title>
<script type="text/javascript">
<!--
function change(obj)
{
    var target = "bbb";    /* 選択したいvalue */
    var i;
    for (i = 0; i < obj.sel.options.length; i++) {
        if (obj.sel.options[i].value == target) {
            obj.sel.selectedIndex = i;
            break;
        }
    }
}
//-->
</script>
</head>
<body>
<form>
<select name="sel">
<option value="aaa">aaa</option>
<option value="bbb">bbb</option>
<option value="ccc">ccc</option>
<option value="ddd">ddd</option>
</select>
<input type="button" value="change" onclick="change(this.form);">
</form>
</body>
</html>

蓮子 2000/02/17(木) 18:53:34
[[解決]]
うまく行きました!ありがとうございます!

あたりまえなのかも知れませんが、
<OPTION>タグに VALUE="ほにょ"を設定しないとダメなんですね。

コウノトリ 2000/02/17(木) 19:02:20
HTML4.01の仕様では

option要素にvalue属性が省略されているときは要素の中身をvalueの値とする

と規定されていますが(多分)、IEやNNのJavaScriptはそのように振る舞ってくれないみたいです。送信されるときはちゃんとうまくいきますが。

[上に] [前に] [次に]