http://jsfiddle.net/rFEER/
<select id="users"> <option value="1">jack</option> <option value="2">brill</option> <option value="3">antony</option> </select>
JS:
$("#users").change(function(){ alert($(this).val()); })
为什么在使用(keyup / keydown)时,直到鼠标被点击才会改变事件
解决方法
why change event not fired when using (keyup/keydown) until mouse is clicked
当焦点离开选择时,它也会触发。这就是改变事件的工作原理。
如果您想要主动通知,您必须注意更改和关闭(至少您可能还需要点击),并处理当该值未实际更改时获取事件的情况,并且必须处理事实这些事件中的一些(例如keydown)在更改值之前被触发,因此在处理事件之前必须等待一会儿。或者看到SpYk3HH’s answer使用keyup而不是主动(不要更新,直到键释放,这可能是期望的),但是你不需要延迟(setTimeout)我的代码如下。
示例(live copy):
HTML(我自由地改变价值观,所以每个名字都更清晰):
<select id="users"> <option value="j">jack</option> <option value="b">brill</option> <option value="a">antony</option> </select>
JavaScript的:
$("#users").bind("keydown change",function(){ var Box = $(this); setTimeout(function() { display(Box.val()); },0); });
注意在2016年:绑定大部分已被替换为on
.在上面,您将直接将“bind”替换为“on”。