Enter回车切换输入焦点实现思路与代码兼容各大浏览器


Posted in Javascript onSeptember 01, 2014

做项目时,客户要求能够用enter回车直接切换输入(焦点),当最后一个时候,直接提交信息。

第一想法就是,网上去copy一段代码直接用。但了百度、谷歌找了个遍,找到的代码80%以上都是一样的。有的代码太老,都不能用。有的只有部分浏览器能用。折腾了半小时也没个合适的办法。最后一想,干脆自己动手。

一、思路

每次点击回车的时候,获取当前的焦点位置,然后设置它的下一个元素获取焦点;

二、代码

<script type="text/javascript">
$('input:text:first').focus(); 
document.onkeydown = function enterHandler(event)
{
var inputs = $("input"); //可自行添加其它过滤条件 
var browser = navigator.appName ; //浏览器名称
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 

var Code = '' ;
if(browser.indexOf('Internet')>-1) // IE 
Code = window.event.keyCode ;
else if(userAgent.indexOf("Firefox")>-1) // 火狐
Code = event.which;
else // 其它
Code = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;

if (Code == 13) //可以自行加其它过滤条件
{
for(var i=0;i<inputs.length;i++)
{
if(inputs[i].id == document.activeElement.id)
{ 
i = i== (inputs.length - 1) ? -1 : i ;
$('#'+ inputs[i+1].id ).focus()
break;
}
}
}
}
</script>

其中,因为IE和火狐对键值获取的不同,所以对浏览器做了简单的判断区分。这样就可以在各个浏览器上获取敲击的键值。

最后,获取到当前的值以后,就可以加其它的各种条件了。

Javascript 相关文章推荐
一个很酷的拖动层的js类,兼容IE及Firefox
Jun 23 Javascript
精通Javascript系列之数值计算
Jun 07 Javascript
jQuery 一个图片切换的插件
Oct 09 Javascript
jQuery动态添加删除select项(实现代码)
Sep 03 Javascript
javascript + jquery实现定时修改文章标题
Mar 19 Javascript
JQuery解析HTML、JSON和XML实例详解
Mar 29 Javascript
js函数定时器实现定时读取系统实时连接数
Apr 30 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
Oct 21 Javascript
js实现前端图片上传即时预览功能
Aug 02 Javascript
JavaScript对象属性操作实例解析
Feb 04 Javascript
js实现简单的无缝轮播效果
Sep 05 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
Oct 19 Javascript
jQuery淡入淡出元素让其效果更为生动
Sep 01 #Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
Sep 01 #Javascript
JQuery中的html()、text()、val()区别示例介绍
Sep 01 #Javascript
关闭页面window.location事件未执行的原因及解决方法
Sep 01 #Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
Sep 01 #Javascript
JavaScript中的单引号和双引号报错的解决方法
Sep 01 #Javascript
一个简单的动态加载js和css的jquery代码
Sep 01 #Javascript
You might like
php iconv() : Detected an illegal character in input string
2010/12/05 PHP
php面向对象 字段的声明与使用
2012/06/14 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
PHP实现图片压缩
2020/09/09 PHP
iis6+javascript Add an Extension File
2007/06/13 Javascript
jQuery搜索子元素的方法
2015/02/10 Javascript
JS数字抽奖游戏实现方法
2015/05/04 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
2015/09/14 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
2015/10/02 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
AngularJS过滤器filter用法总结
2016/12/13 Javascript
JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
2016/12/25 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
Python函数返回值实例分析
2015/06/08 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
2018/02/21 Python
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
python读取图片任意范围区域
2019/01/23 Python
使用Python控制摄像头拍照并发邮件
2019/04/23 Python
Python实现字符串中某个字母的替代功能
2019/10/21 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
2020/03/06 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
Python实现密钥密码(加解密)实例详解
2020/04/26 Python
如何用Python 加密文件
2020/09/10 Python
python 带时区的日期格式化操作
2020/10/23 Python
简单的HTML5初步入门教程
2015/09/29 HTML / CSS
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
初中校园广播稿
2014/02/02 职场文书
县政府领导班子四风问题对照检查材料思想汇报
2014/09/26 职场文书
简短清晨问候语
2015/11/10 职场文书
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python
基于Python实现将列表数据生成折线图
2022/03/23 Python