只有一个 <option> 的选择框 onchange 事件

新手上路,请多包涵

onchange 事件效果很好,可以很好地填充我的输入(文本框),但是当 onchange 事件应用于下拉框且其中只有 1 个选项时,它不起作用。即使有一个或多个项目,我怎样才能让 onchange 触发?

 <!DOCTYPE html>

<html>

<head>

<style type="text/css">

</style>

<script type="text/javascript">
function test(x) {

    var x = document.getElementById(x).options[document.getElementById(x).selectedIndex].text

    document.getElementById('output').value = x

}//end of function
</script>

</head>

<body>
<select id="drop1" onchange="test(this.id)">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>
<br><br>
<select id="drop2" onchange="test(this.id)">
  <option value="volvo">Volvo</option>
</select>
<br><br>
<input type="text" id="output">

</body>

</html>

原文由 John Smith 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 474
2 个回答

如果只有一项,它永远不会改变。尝试 onblur 代替。或者也许 onclick ,这取决于你 实际 想要做什么。

原文由 gilly3 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以在每个选择框的顶部添加一个空选项,或者添加一个仅显示 -Select- 的选项。然后,如有必要,更改您的脚本以忽略空选择。

原文由 Wet Noodles 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题