2010-08-25 99 views
4

如果這是一個愚蠢的問題,請原諒我;我已經使用javascript已經有很多年了。這實際上是通過Joomla中的PHP呈現的javascript和html,但我已經嘗試在普通的舊本地HTML文件中使用相同的代碼,並且出現相同的錯誤。我有一個選擇字段有幾個選項,而onchange我想將文本字段的值設置爲所選選項的值。無論選擇哪個選項,文本字段都將設置爲「未定義」。誰能幫我嗎?這裏是普通的HTML代碼:selectedIndex返回「undefined」作爲值

<html> 
<head> 
<script type="text/javascript"> 
function setPrefix(){ 
    var f = document.adminForm; 
    f.prefix.value = f.editprefixes.selectedIndex.value; 
} 
</script> 
</head> 
<body> 

<form name="adminForm"> 

<select name="editprefixes" onchange="javascript:setPrefix()"> 
<option value=1000>1000</option> 
<option value=1001>1001</option> 
<option value=1005>1005</option> 
<option value=1011>1011</option> 
<option value=1016>1016</option> 
</select> 
<br /> 

<input type="text" name="prefix" value="" /> 
</form> 
</body> 
</html> 
+1

還沒有真正的理由前綴JavaScript代碼具有'javascript:'僞協議的屬性。 'onchange =「setPrefix()」'可以正常工作。 – 2010-08-25 16:38:29

回答

5

<select>selectedIndex屬性不引用實際<option>對象,而是對應於所述選項的索引的整數被選擇(因此第一個選項是0 ,第二個是1,依此類推)。

如果你想獲得所選選項的值,你需要使用:

var sel = f.editprefixes; 
f.prefix.value = sel.options[sel.selectedIndex].value; 
+0

+1,很好的解釋。 FWIW,'sel.value'也適用於所有瀏覽器中的這種情況。 – 2010-08-25 16:44:57

+0

謝謝,這工作。現在回到我身邊... – EmmyS 2010-08-25 16:51:21

1

試試這個:

f.prefix.value = f.editprefixes.options[f.editprefixes.selectedIndex].value;