【发布时间】:2010-10-13 10:25:46
【问题描述】:
我有一个输入表单,可让我从多个选项中进行选择,并在用户更改选择时执行某些操作。例如,
<select onChange="javascript:doSomething();">
<option>A</option>
<option>B</option>
<option>C</option>
</select>
现在,doSomething() 仅在选择更改时触发。
我想在用户选择任何选项时触发doSomething(),可能再次相同。
我曾尝试使用“onClick”处理程序,但它会在用户开始选择过程之前触发。
那么,有没有办法在用户每次选择时触发一个函数?
更新:
Darryl 建议的答案似乎有效,但并不能始终如一。有时,一旦用户单击下拉菜单,甚至在用户完成选择过程之前,事件就会被触发!
【问题讨论】:
-
我能理解你为什么这么想。我会保持简短。我的表单上有两个输入。城市(文本字段)和州(选择)。最初,会显示一个城市及其州。当用户选择一个州时,某处的搜索过滤器会将其范围扩大到“全州”而不是“特定城市”。
-
strager,这不是一个不常见的 UI 元素。在某些情况下非常有意义。另一个例子是撰写大量电子邮件,然后您在右侧有一个带有“特殊字段”的下拉菜单,您可以快速将其添加到电子邮件中、名字、退出链接等。
-
作为旁注......对于onclick,onchange等内联事件,您不需要“javascript:”协议前缀。 on{event}="doSomething();"很好。
-
未经测试:onClick 但应用于选项标签怎么样?显然是通过一个类,以一种不显眼的方式
-
@The Disintegrator 仅使用点击事件无法处理通过键盘选择选项的用例。 (意识到这是一个古老的问题 - 为未来的访客添加......)
标签: javascript html html-select dom-events