在最近有个项目中 需要实现当文本框聚焦的时候,可以键盘上下键选择内容,按enter键的时候,把内容传到输入框中,如图所示:

实现代码如下:

/***输入框聚焦,键盘上下键选择城市
*/
;(function($){$.fn.inputKey=function(options){var settings=$.extend({'focusID':'#city2',//聚焦的输入框ID或class'slideBox':'.FdestinationBox',//内容容器Div'current':'current',//li有选中状态的class名'dataCity':'data-city'//li上的属性 如:<li data-city="北京"></li>
        },options);return this.each(function(){var number = 0;var $focusDiv = $(settings.focusID);var $slideBox = $(settings.slideBox);var $slideBoxLi = $slideBox.find('li');var sizeLength = $slideBox.find('li').size();$focusDiv.focus(function(){// sizeLength = $slideBox.find('li').size();$slideBoxLi.removeClass(settings.current);//初始化current状态$slideBox.css({'display':'block'});    });if(window.addEventListener){$focusDiv[0].addEventListener("input", function () { number = 0;sizeLength = $slideBox.find('li').size();$slideBoxLi.removeClass(settings.current);$slideBoxLi.eq(0).addClass(settings.current);}); }else{$focusDiv[0].attachEvent("input", function () { number = 0;sizeLength = $slideBox.find('li').size();$slideBoxLi.removeClass(settings.current);$slideBoxLi.eq(0).addClass(settings.current);}); }$focusDiv.on('keyup',function(e){console.log(sizeLength);e=window.event||e;if(e.keyCode==38){if(number>0){number--;}else{number=sizeLength-1;   }$slideBoxLi.removeClass(settings.current);$slideBoxLi.eq(number).addClass(settings.current);}else if(e.keyCode==40){if(sizeLength-1 > number){number++;}else{number=0;}$slideBoxLi.removeClass(settings.current);$slideBoxLi.eq(number).addClass(settings.current);} else if(e.keyCode==13){var dataCity = $slideBoxLi.eq(number).attr(settings.dataCity);$focusDiv.val(dataCity);$slideBox.fadeOut();$focusDiv.blur();$slideBoxLi.removeClass(settings.current);}});$slideBoxLi.hover(function(){number=$(this).index();$slideBoxLi.removeClass(settings.current);$(this).addClass(settings.current);});$('body').on('click',$slideBoxLi,function(e){e.preventDefault();var dataCity = $slideBoxLi.eq(number).attr(settings.dataCity);$focusDiv.val(dataCity);number=0;});});}})(jQuery);

调用的方式:

$(function(){$("#city2").inputKey({'focusID':'#city2','slideBox':'.FdestinationBox','current':'current','dataCity':'data-city'});
})

jQuery实现输入框聚焦,键盘上下键选择城市相关推荐

  1. jquery.autocomplete修改 实现键盘上下键 自动填充

    根据需求要实现通过键盘上下移动,获得联想菜单中的值,如同google baidu的查询功能. 在网上找了很久没有找到可以实现该功能的插件,无奈只能自己动手改代码. 找到js中的KEY.DOWN 和 K ...

  2. jQuery给输入框绑定键盘事件

    场景:在input框中输入值之后按enter键代替确定按钮. 解决方案: $('#searchSfzh').bind('keyup', function(event) { if (event.keyC ...

  3. jQuery 利用键盘上下键移动表格内容

    在我们编辑表格内容时,经常需要将表格内容的位置进行移动,而利用键盘上下键进行移动是十分方便的. 效果如下: 基本原理是:先使用鼠标选中其中的一行,随后使用键盘上下键,通过获取不同的键值区分上移和下移的 ...

  4. Qt中解除按键在聚焦时键盘空格键可以控制

    Qt中解除按键在聚焦时键盘空格键可以控制,只允许鼠标左键可以点击按键 首先需要知道原因,为什么键盘上的空格键也可以点击按键? 根据Qt官网说明:A push button emits the sign ...

  5. 通过键盘上下键 JS事件,控制候选词的选择项

    效果图 JS代码 //上下键 选择事件 searchBackgroud 为样式,只做标记,无实质样式,因为和其他样式不兼容,只能添加CSS$(document).keydown(function (e ...

  6. 微信小程序输入框聚焦获取键盘安全高度

    首先要给输入框增加属性 show-confirm-bar="{{ false }}",绑定个输入框聚焦事件bindfocus="getKeyboardHeight&quo ...

  7. vue实现自定义身份证,数字键盘(光标,输入框,键盘)

    vue实现自定义身份证,数字键盘(光标,输入框,键盘) 组件介绍 组件代码 效果图 组件使用 引用 使用 参数介绍 方法 插槽 组件介绍 vue实现自定义身份证键盘(光标,输入框,键盘全手写) 组件代 ...

  8. jquery 实现输入框联想搜索

    jquery 实现输入框联想搜索 实际功能中有很多联想搜索 在这里封装成方法,变成可复用的 <div class="autoSupRelative"><input ...

  9. 列名无效怎么解决_电脑win键失效怎么办? 键盘win键无效的解决办法

    电脑win键失效怎么办?在使用windows系统的时候,发现一个问题,就是win键失效了,怎么按都没有反应,该怎么办呢?羡慕我们就来分享键盘win键无效的三种解决办法,需要的朋友可以参考下 对于编程人 ...

  10. html线框聚焦效果,24种表单input输入框聚焦动画特效

    这是一组效果超酷的表单input输入框聚焦CSS3动画特效.这组特效共24种不同的聚焦动画效果,分为3个类别,分别是边框动画特效,背景动画特效和浮动标签动画特效. 这组输入框聚焦特效主要使用CSS3 ...

最新文章

  1. 中心频率和一些概念解释
  2. java8 hashmap 死循环_踩坑了,JDK8中HashMap依然会死循环!
  3. windows 2003 配置dhcp服务器
  4. 2020 CCPC网络赛 赛后感
  5. Python3爬虫(十一) 爬虫与反爬虫
  6. XP下安装SQL2000企业版
  7. mysql 5.5 udf_MYSQL5漏洞之udf提权
  8. 机器学习-百度笔试题
  9. CCNA考试题库中英文翻译版及答案15
  10. python搭建自己的网站_Python+Django搭建自己的blog网站
  11. ElasticSearch常用语法大全
  12. 微信公众号之自定义菜单
  13. 音频技术的下一个“热点”,会出现在哪个领域?丨一期一会 • 音频工程师专场
  14. codeforces1348E Phoenix and Berries
  15. torch.flatten()
  16. 我的计算机管理怎么打不开,为什么打不开"计算机管理"
  17. AI把你打造成时尚界宠儿 1
  18. Web大学生网页作业成品——美食餐饮网站设计与实现(HTML+CSS+JavaScript)
  19. Mac上一款天空效果合成图片处理软件分享
  20. 击鼓传花击鼓次数相同c语言,击鼓传花游戏规则以及惩罚方法大全-七维卓越拓展...

热门文章

  1. 网络设备中的路由器的作用,如何设置路由器,上网、IP分配、黑白名单、访问量...
  2. 全新的Smultron 12已发布:简单好用、功能强大、优雅简洁
  3. 苹果电脑修改hosts文件方法介绍!mac的hosts文件位置在哪?
  4. 13 个设计 REST API 的最佳实践
  5. mysql inet_aton 与 inet_ntoa 方法
  6. JAVA虚拟机——利用javap反编译class文件分析代码执行过程
  7. 思科的雾计算对物联网有何推助力?
  8. JMockit学习笔记
  9. centos 6.5 搭建svn
  10. C++ string split()和 replaceAll()