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. Codeforces Round #343 (Div. 2) C. Famil Door and Brackets dp

    C. Famil Door and Brackets 题目连接: http://www.codeforces.com/contest/629/problem/C Description As Fami ...

  2. (转)Hadoop系列-IPC模型

    学习笔记Mark IPC 实现RPC的一种方法,具有快速.简单的特点. 它不像Sun公司提供的标准RPC包,基于Java序列化. IPC无需创建网络stubs和skeletons. IPC中的方法调用 ...

  3. FIREMONEY手机虚拟键盘遮挡的解决

    FIREMONEY手机虚拟键盘遮挡的解决 尝遍了网上人们提供的N种方法之后,发现还是老猫的方法才是彻底解决问题的办法. 老猫“不看后悔XXX”--->RAD10.2.3 Flying Wang ...

  4. appium+python自动化44-appium命令行模式

    前言 appium desktop有个客户端版本,每次运行脚本的时候都要去双击启动才能运行,很显然不太方便,影响效率.那么有没什么办法不启动桌面程序就能运行呢,比如cmd命令行执行? 环境: appi ...

  5. Android 卡顿优化 4 布局优化实际技巧

    今天分享一些layout布局书写中的一些技巧,希望看过之后你也一样可以写出性价比高的布局.我个人的目标是用最少的View写出一样效果的布局.因为我相信View的数量减少伴随着的就是层级的减少.从而达到 ...

  6. iOS:CYLTabBarController的具体使用实例:实现新浪微博的主流框架

    使用CocoaPods或者手动集成将CYLTabBarController这个第三方框架导入项目后,截图如下: 在AppDelegate.m类中实现的代码如下: // AppDelegate.m // ...

  7. 【笔记】关于require.js 的用法

    最近忙于学校的一个新网站建设,对于以前的前端程序编写方式的不正规特意上网学习了require.js 的用法,使此次的工程更加有条理同时符合当前前端的开发模式——前端模块化. 网上有不少很好的学习文章这 ...

  8. Centos6.8配置svn

    svn的安装:yum -y install subversion 一.一个仓库放所有的项目 创建仓库,以后所有代码都放在这个下面,创建成功后在svn下面多了几个文件夹.1.创建仓库:svnadmin ...

  9. X 开启新的 X window 服务器

    X -ac -terminate :3 开启服务,禁用访问控制约束,重置时关闭服务,$DISPLAY=:3 此时设置用户程序的 DISPLAY 值,就可在指定的 X 服务器上打开程序,比如 DISPL ...

  10. C++ Primer笔记2_四种类型转换_异常机制

    1.类型转换 命名的强制类型转换: 有static_cast.dynamic_cast.const_cast.reinterpret_cast static_cast: 编译器隐式运行的不论什么类型转 ...