jQuery实现输入框聚焦,键盘上下键选择城市
在最近有个项目中 需要实现当文本框聚焦的时候,可以键盘上下键选择内容,按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实现输入框聚焦,键盘上下键选择城市相关推荐
- jquery.autocomplete修改 实现键盘上下键 自动填充
根据需求要实现通过键盘上下移动,获得联想菜单中的值,如同google baidu的查询功能. 在网上找了很久没有找到可以实现该功能的插件,无奈只能自己动手改代码. 找到js中的KEY.DOWN 和 K ...
- jQuery给输入框绑定键盘事件
场景:在input框中输入值之后按enter键代替确定按钮. 解决方案: $('#searchSfzh').bind('keyup', function(event) { if (event.keyC ...
- jQuery 利用键盘上下键移动表格内容
在我们编辑表格内容时,经常需要将表格内容的位置进行移动,而利用键盘上下键进行移动是十分方便的. 效果如下: 基本原理是:先使用鼠标选中其中的一行,随后使用键盘上下键,通过获取不同的键值区分上移和下移的 ...
- Qt中解除按键在聚焦时键盘空格键可以控制
Qt中解除按键在聚焦时键盘空格键可以控制,只允许鼠标左键可以点击按键 首先需要知道原因,为什么键盘上的空格键也可以点击按键? 根据Qt官网说明:A push button emits the sign ...
- 通过键盘上下键 JS事件,控制候选词的选择项
效果图 JS代码 //上下键 选择事件 searchBackgroud 为样式,只做标记,无实质样式,因为和其他样式不兼容,只能添加CSS$(document).keydown(function (e ...
- 微信小程序输入框聚焦获取键盘安全高度
首先要给输入框增加属性 show-confirm-bar="{{ false }}",绑定个输入框聚焦事件bindfocus="getKeyboardHeight&quo ...
- vue实现自定义身份证,数字键盘(光标,输入框,键盘)
vue实现自定义身份证,数字键盘(光标,输入框,键盘) 组件介绍 组件代码 效果图 组件使用 引用 使用 参数介绍 方法 插槽 组件介绍 vue实现自定义身份证键盘(光标,输入框,键盘全手写) 组件代 ...
- jquery 实现输入框联想搜索
jquery 实现输入框联想搜索 实际功能中有很多联想搜索 在这里封装成方法,变成可复用的 <div class="autoSupRelative"><input ...
- 列名无效怎么解决_电脑win键失效怎么办? 键盘win键无效的解决办法
电脑win键失效怎么办?在使用windows系统的时候,发现一个问题,就是win键失效了,怎么按都没有反应,该怎么办呢?羡慕我们就来分享键盘win键无效的三种解决办法,需要的朋友可以参考下 对于编程人 ...
- html线框聚焦效果,24种表单input输入框聚焦动画特效
这是一组效果超酷的表单input输入框聚焦CSS3动画特效.这组特效共24种不同的聚焦动画效果,分为3个类别,分别是边框动画特效,背景动画特效和浮动标签动画特效. 这组输入框聚焦特效主要使用CSS3 ...
最新文章
- 中心频率和一些概念解释
- java8 hashmap 死循环_踩坑了,JDK8中HashMap依然会死循环!
- windows 2003 配置dhcp服务器
- 2020 CCPC网络赛 赛后感
- Python3爬虫(十一) 爬虫与反爬虫
- XP下安装SQL2000企业版
- mysql 5.5 udf_MYSQL5漏洞之udf提权
- 机器学习-百度笔试题
- CCNA考试题库中英文翻译版及答案15
- python搭建自己的网站_Python+Django搭建自己的blog网站
- ElasticSearch常用语法大全
- 微信公众号之自定义菜单
- 音频技术的下一个“热点”,会出现在哪个领域?丨一期一会 • 音频工程师专场
- codeforces1348E Phoenix and Berries
- torch.flatten()
- 我的计算机管理怎么打不开,为什么打不开"计算机管理"
- AI把你打造成时尚界宠儿 1
- Web大学生网页作业成品——美食餐饮网站设计与实现(HTML+CSS+JavaScript)
- Mac上一款天空效果合成图片处理软件分享
- 击鼓传花击鼓次数相同c语言,击鼓传花游戏规则以及惩罚方法大全-七维卓越拓展...
热门文章
- 网络设备中的路由器的作用,如何设置路由器,上网、IP分配、黑白名单、访问量...
- 全新的Smultron 12已发布:简单好用、功能强大、优雅简洁
- 苹果电脑修改hosts文件方法介绍!mac的hosts文件位置在哪?
- 13 个设计 REST API 的最佳实践
- mysql inet_aton 与 inet_ntoa 方法
- JAVA虚拟机——利用javap反编译class文件分析代码执行过程
- 思科的雾计算对物联网有何推助力?
- JMockit学习笔记
- centos 6.5 搭建svn
- C++ string split()和 replaceAll()