1

JavaScript を使用してドロップダウン リストを操作しようとしていますが、ボタンをクリックするたびに次のコードが表示されるようです。

TypeError: objDropDownMenu.options は定義されていません

objDropDownMenu.options[1].selected = true;

これが私のコードです:

<FORM NAME="myform" ACTION="" METHOD="GET">
<SELECT class="select diff_data" style="WIDTH: 165px" name=CarPick>
<OPTION value=1>Audi</OPTION>
<OPTION value=2>BMW</OPTION>
<OPTION value=3>Mercedes</OPTION>
</SELECT>

<INPUT TYPE="button" NAME="button2" Value="Write" onClick="writeText(this.form)">
</FORM>

<SCRIPT LANGUAGE="JavaScript">
var objDropDownMenu = document.getElementsByName("CarPick");



function writeText (form) {
    objDropDownMenu.options[30].selected = true;
}
</SCRIPT>

どうして?ありがとう!

4

2 に答える 2

3

getElementsByNameは常にarrayofを返しますobjects

したがって、次を使用する必要があります。 objDropDownMenu[0].options[30].selected = true

これにアプローチするより良い方法は、select にIDdocument.getElementById('yourid')を設定し、常に 1 つのオブジェクトのみを返す which を使用することです (ID は常に HTML ドキュメント内で一意である必要があるため)。

于 2013-02-04T14:55:06.587 に答える
1

あなたのコードが単なる例であるかどうかはわかりませんが、そうでない場合は、一致しない名前がたくさんあります。それを修正しましょう:

<FORM NAME="myform" ACTION="" METHOD="GET">
<SELECT class="select diff_data" style="WIDTH: 165px" name="CarPick">
<OPTION value="1">Audi</OPTION>
<OPTION value=2>BMW</OPTION>
<OPTION value=3>Mercedes</OPTION>
</SELECT>

<INPUT TYPE="button" NAME="button2" Value="Write" onClick="writeText(this.form)">
</FORM>

<SCRIPT LANGUAGE="JavaScript">
var objDropDownMenu = document.getElementsByName("CarPick")[0];   //It is get elementS - all alements with that name are returned



function writeText (form) {
    objDropDownMenu.options[2].selected = true;  //Here I wonder if 30th entry exists, 2 surelly does
}
</SCRIPT>
于 2013-02-04T14:59:20.717 に答える