2013-02-04 122 views
1

我試圖通過JavaScript操縱下拉列表,但我似乎每次得到這個代碼,我點擊一個按鈕:改變與按鈕單擊選擇選項下拉數據

TypeError: objDropDownMenu.options is undefined

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> 

Anyu想法爲什麼?謝謝!

+0

「ProcStage」定義在哪裏? – epascarello

+0

對不起,我忘了更改它在我的代碼:) – pufAmuf

回答

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> 
+1

謝謝:)托馬斯 – pufAmuf

3

getElementsByName總是返回arrayobjects

所以,你必須使用: objDropDownMenu[0].options[30].selected = true

一種更好的方式來處理,這是設置一個ID您的選擇,然後用document.getElementById('yourid')這將永遠只返回一個對象(因爲ID應該永遠是在HTML文件中是唯一的)。

+0

謝謝tenhouse;) – pufAmuf

相關問題