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”。
原文地址:https://www.jb51.cc/jquery/182588.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。