Javascript selectedIndex正在返回";“未定义”;作为价值
如果这是一个愚蠢的问题,请原谅我;我已经很多年没有使用javascript了。这实际上是在Joomla中通过PHP呈现的javascript和html,但我尝试在一个普通的旧本地html文件中使用相同的代码,我得到了相同的错误。我有一个带有多个选项的选择字段,一旦更改,我想将文本字段的值设置为所选选项的值。无论我选择哪个选项,文本字段都被设置为“未定义”。有人能帮我吗?以下是简单的html代码:Javascript selectedIndex正在返回";“未定义”;作为价值,javascript,Javascript,如果这是一个愚蠢的问题,请原谅我;我已经很多年没有使用javascript了。这实际上是在Joomla中通过PHP呈现的javascript和html,但我尝试在一个普通的旧本地html文件中使用相同的代码,我得到了相同的错误。我有一个带有多个选项的选择字段,一旦更改,我想将文本字段的值设置为所选选项的值。无论我选择哪个选项,文本字段都被设置为“未定义”。有人能帮我吗?以下是简单的html代码: <html> <head> <script type="text/ja
<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>
函数setPrefix(){
var f=document.adminForm;
f、 prefix.value=f.editprefixes.selectedIndex.value;
}
1000
1001
1005
1011
1016
一个
的selectedIndex
属性并不是指一个实际的
对象,而是一个与所选选项的索引相对应的整数(因此第一个选项是0,第二个选项是1,依此类推)
如果要获取所选选项的值,需要使用:
var sel = f.editprefixes;
f.prefix.value = sel.options[sel.selectedIndex].value;
试试这个:
f.prefix.value = f.editprefixes.options[f.editprefixes.selectedIndex].value;
另外,在属性中使用
javascript:
pseudo协议作为javascript代码的前缀并没有真正的理由onchange=“setPrefix()”
将正常工作。+1,一个很好的解释。FWIW,sel.value
也适用于所有浏览器中的这种情况。