更改下拉菜单中的选定选项,从而导致onchange事件;javascript

Changing the selected option in a dropdown menu and so cause an onchange event; javascript

本文关键字:onchange 事件 javascript 下拉菜单 选项      更新时间:2023-09-26

好吧,我已经花了很长时间来处理这个问题,但进展甚微。然而,我已经看到了很多解决方案,在我的情况下实施它们是行不通的,我真的不知道为什么。

我试图让一些图像在被点击时更改下拉菜单的选定值,从而导致下拉菜单上发生onchange事件。

<script type="text/javascript">
 function parse_theme(input){
    var index = document.getElementById('themes').length; /* this bit is working fine */
    for(var i=0;i<=index;i++;){
       if(document.getElementById('themes').options[i].value == input){ /*error is here */
          document.getElementById('themes').selectedIndex = i;
       }
    }
}
</script>

和html:

<select id="themes" style="display:none;" onchange="selectTheme()">
  <option value="default" selected="selected">default</option>
  <option value="ambiance">ambiance</option>
  <option value="cobalt">cobalt</option>
</select>
<img id="default" onclick="parse_theme(this.id)" src="images/default.png" width="10" height="10">
<img id="ambiance" onclick="parse_theme(this.id)" src="images/ambiance.png" width="10" height="10">
<img id="cobalt" onclick="parse_theme(this.id)" src="images/cobalt.png" width="10" height="10">

我收到"未捕获类型错误:无法读取未定义的属性'value'。

onchange函数运行良好,但当我只使用下拉菜单时,我希望通过一系列图像来完成,并使图像引用列表中的选项,使列表不可见。

将其更改为

for(var i=0;i<index;i++;){

循环的最后一个索引可能失败了,因为索引值为3,您将循环0、1、2、3,而不是的3倍