2012-08-08 33 views
0

我有一個名爲batch的DropDown列表。 如果我選擇第二個選項,OnChange函數內的dropdown.selectedIndex始終顯示選定的索引。 但是document.getElementById(「batch」)。selectedIndex總是顯示第一個索引。
這是爲什麼?
其實我想在另一個函數中讀取正確的批次selectedIndex,這就是爲什麼我需要一種方式來獲得正確的選擇索引。DropDown List SelectedIndex在javascript中無法使用getElementById

function OnChange(dropdown){ 
    var myindex = dropdown.selectedIndex;// This prints correctly 
    alert("Index : "+document.getElementById("batches").selectedIndex);// This is always 0 no metter what selects   
} 

<select name='batches' id='batches' onchange='OnChange(this);'> 
<option value = "1">1</option> 
<option value = "2">2</option> 
<option value = "3">3</option> 
</select> 
+0

在哪個瀏覽器中? Firefox和IE每次都會給出正確的索引。 – RobG 2012-08-08 02:58:59

+0

大家好!我使用php動態生成dropDown框。在這種情況下,另一個具有相同名稱和ID的下拉框已添加到另一個區域。這就是爲什麼它獲得了它的價值。感謝您的努力和建議。對我沒有看到那個錯誤感到羞恥! – namalfernandolk 2012-08-08 04:04:14

回答

1

我不知道你要測試的瀏覽器,但下面總是顯示在我的測試,所有的瀏覽器真:

<select id="batches" onchange=" 
    alert(this.selectedIndex == document.getElementById('batches').selectedIndex); 
"> 
    <option value = "1">1 
    <option value = "2">2 
    <option value = "3">3 
</select> 

<!-- and to confirm... --> 
<button onclick=" 
    alert(document.getElementById('batches').selectedIndex); 
">Show selected index</button> 

我希望你不會因爲選項值1,2和3與selectedIndexes 0,1和2相關而感到困惑。

+0

嗨RonG!我使用php動態生成dropDown框。在這種情況下,另一個區域添加了另一個具有相同名稱和ID的下拉框。感謝您的努力和建議。對我沒有看到那個錯誤感到羞恥! – namalfernandolk 2012-08-08 03:57:23

+0

啊是的,重複的ID。爲什麼我沒有想到這一點? :-) – RobG 2012-08-08 04:22:32

1

因爲你調用函數onChange事件,即不在過去。嘗試觸發沒有onchange事件的功能,並選擇過去的屬性

 <select name='batches' id='batches' onchange='someFunc();'> 
<option value = "1">1</option> 
<option value = "2">2</option> 
<option value = "3">3</option> 
</select> 
<a href="javascript:someFunc()">Test</a> 

<script> 
function someFunc(){ 
    //var myindex = dropdown.selectedIndex;// This prints correctly 
    alert("Index : "+document.getElementById("batches").selectedIndex);// This is always 0 no metter what selects   
} 
</script> 

它會工作。只需複製和將此代碼粘貼到文本編輯器並對其進行測試

+0

試過了。但結果是一樣的說。它打印第一個索引 – namalfernandolk 2012-08-08 00:41:30

+0

@NamalFernando請將編輯後的代碼複製並粘貼到答案中。 – 2012-08-08 00:46:52

+0

@NamalFernando換句話說,在onChange事件正在運行時,您無法獲取selectedIndex!您只能通過傳遞反映其當前狀態的對象的屬性來獲取。 – 2012-08-08 00:51:33

相關問題