1. 目的

  可以使用快捷键1、2、3、4等自动选中select框对应的option

2. 代码

<select id="selectItem" class="form-control">
<option>北京</option>
<option>上海</option>
<option>广州</option>
<option>深圳</option>
</select>
$("#selectItem").focus(function() {
// 动态设置size支持option的事件监听
this.size = this.children.length;
}).blur(function() {
this.size = 1;
}); $("#selectItem option").click(function() {
$("#selectItem option").each(function() {
$(this).removeAttr("selected");
});
$(this).attr("selected", true);
$("#selectItem").blur();
}); $(document).keydown(function(event) {
var key = event.which; // 获取按键的ascii码
var num = key - 48; // 获取对应的数字
if (num >= 1 && num <= 4) { // 只有4个下拉框,只处理1-4
var count = 1; // 计数
$("#selectItem option").each(function() {
if (count == num) {
$("#selectItem").val($(this).text());
$(this).attr("selected", true);
$("#selectItem").blur();
} else {
$(this).removeAttr("selected");
}
count++;
});
}
});

当select是动态生成的时候,绑定事件不生效,可以使用事件冒泡实现事件绑定

$("body").delegate("#selectItem", "focus", function() {
this.size = this.children.length;
}).delegate("#selectItem", "blur", function() {
this.size = 1;
}).delegate("#selectItem option", "click", function() {
$("#selectItem option").each(function() {
$(this).removeAttr("selected");
});
$(this).attr("selected", true);
$("#selectItem").blur();
}); $(document).keydown(function(event) {
var key = event.which; // 获取按键的ascii码
var num = key - 48; // 获取对应的数字
if (num >= 1 && num <= 4) { // 只有4个下拉框,只处理1-4
var count = 1; // 计数
$("#selectItem option").each(function() {
if (count == num) {
$("#selectItem").val($(this).text());
$(this).attr("selected", true);
$("#selectItem").blur();
} else {
$(this).removeAttr("selected");
}
count++;
});
}
});

为select的option绑定键盘事件的更多相关文章

  1. html5标签div可绑定键盘事件方法

    我们知道键盘事件一般用在input这些可以获取焦点的元素上,但是作为div,尽管官方上说可以绑定键盘事件,但是我写了以后发现不生效,于是找答案. 果然,找到了一个神器:tabindex 它是html5 ...

  2. select中option的onclick事件失效

    html: <select id="pageSelect"> <option value="1" selected onclick=" ...

  3. easyui给select控件绑定change事件

    一般的做法是使用jQuery来绑定,例如: $("#id").change(function(){ alert("change事件绑定"); }); 当给sel ...

  4. 让 select 的 option 标签支持事件监听(如复制操作)

    这标题,让option支持事件监听,应该不难的呀,有什么好讲的? 其实还是有的,默认在浏览器代码是无法直接对option标签进行操作的,不仅包括JS事件监听,还是CSS样式设置 查了一些资料,姑且认为 ...

  5. layui 触发 select 下option 被选择事件

    1.找到值为某一个的元素 var S0 = 'dd[lay-value='+ level+']'; 2.给该元素注册点击事件  siblings(兄弟节点) $('select[name=\'leve ...

  6. js 绑定的键盘事件

    在全局绑定键盘事件 document.onkeydown = function(event){        //在全局中绑定按下事件 var e  = event  ||  window.e; va ...

  7. javascript 键盘事件总结

    原文:http://www.cnblogs.com/rubylouvre/archive/2009/08/20/1550526.html#2583814 在进入正题前,我们看一下浏览器对于键盘的一些默 ...

  8. vue添加页面键盘事件

    我司开发项目,用的是vue+elementUI,做登陆页面的时候,点击enter键的时候要实现和点击登陆按钮一样的功能,所以就百度了一下,于是一通百度之后,就在点击按钮上面直接添加了@keyup.en ...

  9. js Dom为页面中的元素绑定键盘或鼠标事件

    html鼠标事件 onload 页面加载 onclick 鼠标单击 onmouseover 鼠标移入 onmouseout 鼠标移出 onfocus 获取焦点 onblur 失去焦点 onchange ...

随机推荐

  1. Educational Codeforces Round 9 E. Thief in a Shop dp fft

    E. Thief in a Shop 题目连接: http://www.codeforces.com/contest/632/problem/E Description A thief made hi ...

  2. winform窗体MaximizeBox

    如果MaximizeBox为false会导致Form2窗体底部不显示. =>解决办法TopMost属性为true. Form2 _frm2 = new Form2(); _frm2.Maximi ...

  3. palm os

    在3G展会上,Palm将告别Palm OS操作系统 2009年2月12日消息,据国外媒体报道,周三,Palm CEO埃德•科林根(Ed Colligan)在旧金山的一个投资者会议上表示,Palm将告别 ...

  4. python笔记12-python多线程之事件(Event)

    前言 小伙伴a,b,c围着吃火锅,当菜上齐了,请客的主人说:开吃!,于是小伙伴一起动筷子,这种场景如何实现 Event(事件) Event(事件):事件处理的机制:全局定义了一个内置标志Flag,如果 ...

  5. 常见Linux命令(非文件操作)

    可见 http://man.linuxde.net/systemctl 非常详尽

  6. HDU3001 Travelling 状压DP

    哭瞎啊,每一个城市能够经过至多两次,但没有要求必须经过两次.想用 两个状压来乱搞搞.结果自觉得会T.结果 WA了,搞了一下午.没想到用三进制啊.智商捉急,參考了 http://blog.csdn.ne ...

  7. [转]黄聪:如何使用CodeSmith批量生成代码

    本文转自:http://www.cnblogs.com/huangcong/archive/2010/06/14/1758201.html 在上一篇我们已经用PowerDesigner创建好了需要的测 ...

  8. (转)Android项目重构之路:实现篇

    前两篇文章Android项目重构之路:架构篇和Android项目重构之路:界面篇已经讲了我的项目开始搭建时的架构设计和界面设计,这篇就讲讲具体怎么实现的,以实现最小化可用产品(MVP)的目标,用最简单 ...

  9. JVM类加载机制详解(一)JVM类加载过程

    http://blog.csdn.net/zhangliangzi/article/details/51319033 http://chenzhou123520.iteye.com/blog/1597 ...

  10. 配置项目启动的时候就加载 servlet

    load-on-startup值为0 就是在项目启动的时候自动加载该servlet