Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
作者:bea
做项目时,客户要求能够用enter回车直接切换输入(焦点),当最后一个时候,直接提交信息。 第一想法就是,网上去copy一段代码直接用。但了百度、谷歌找了个遍,找到的代码80%以上都是一样的。有的代码太老,都不能用。有的只有部分浏览器能用。折腾了半小时也没个合适的办法。最后一想,干脆自己动手。 一、思路 每次点击回车的时候,获取当前的焦点位置,然后设置它的下一个元素获取焦点; 二、代码 <script type="text/javascript"> $('
做项目时,客户要求能够用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和火狐对键值获取的不同,所以对浏览器做了简单的判断区分。这样就可以在各个浏览器上获取敲击的键值。
最后,获取到当前的值以后,就可以加其它的各种条件了。
演示地址:http://demo./js/2014/jsenterqiehuan/
有用 | 无用
第一想法就是,网上去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和火狐对键值获取的不同,所以对浏览器做了简单的判断区分。这样就可以在各个浏览器上获取敲击的键值。
最后,获取到当前的值以后,就可以加其它的各种条件了。
演示地址:http://demo./js/2014/jsenterqiehuan/
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- Iframe实现跨浏览器自适应高度解决方法
- jQuery级联操作绑定事件实例
- jquery和css3实现的炫酷时尚的菜单导航
- Enter回车切换输入焦点实现思路与代码兼容各大浏览器
- jQuery淡入淡出元素让其效果更为生动
- JQuery表格拖动调整列宽效果(自己动手写的)
- JQuery中的html()、text()、val()区别示例介绍
- 关闭页面window.location事件未执行的原因及解决方法
- 文本框倒叙输入让输入框的焦点始终在最开始的位置
- JavaScript中的单引号和双引号报错的解决方法
- 一个简单的动态加载js和css的jquery代码
- jquery ajax请求方式与提示用户正在处理请稍等
- 用js提交表单解决一个页面有多个提交按钮的问题
- 浅析JQuery中的html(),text(),val()区别
- 如何判断微信内置浏览器(通过User Agent实现)
- 使用jquery.validate自定义方法实现"手机号码或者固话至少填写一个"的逻辑验证
- 上传图片js判断图片尺寸和格式兼容IE
- 影响jQuery使用的14个方面
- 自编jQuery插件实现模拟alert和confirm