【发布时间】:2013-11-15 13:14:49
【问题描述】:
我在网页上有一个选择选项块,我希望它针对其中选择的任何选项触发。但是,第一个选项永远不会触发 onselect:即使之前选择了后面的选项也不会。
例如,如果我的代码如下:
Settings:
Sensitivity: <select id="sensitivity" onchange="if (this.selectedIndex) ajaxUpdateConfig();">
<option value="25">25%</option>
<option value="50">50%</option>
<option value="100" selected>100</option>
</select>
...然后选择第一个选项 25%,永远不会触发 onchange() 事件。
同样,如果第一个选项是默认值,并且用户离开它然后想要返回到它,那也不会触发 onchange 事件。
注意:我知道“第一个选择不会生成 onchange 事件”问题的标准答案是创建一个虚拟(禁用)的第一个选项。但这不符合此页面的设计:菜单表示显示当前状态,同时提供用户可以更改设置的选项。对于这个页面来说,有一个虚拟条目是糟糕的界面设计。
【问题讨论】:
-
SLaks 有答案,但我很确定你想使用
onchange而不是onselect。 -
没错。这就是我在尝试除 onchange 之外的其他不同选项时引用代码所得到的。它确实应该是 onchange - 编辑更正。
标签: javascript events onchange