基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )


Posted in Javascript onNovember 14, 2010

第一种方法:

$(document).ready(function () { 
$(':input:text:first').focus(); 
$(':input:enabled').addClass('enterIndex'); 
// get only input tags with class data-entry 
textboxes = $('.enterIndex'); 
// now we check to see which browser is being used 
if ($.browser.mozilla) { 
$(textboxes).bind('keypress', CheckForEnter); 
} else { 
$(textboxes).bind('keydown', CheckForEnter); 
} 
}); 
function CheckForEnter(event) { 
if (event.keyCode == 13 && $(this).attr('type') != 'button' && $(this).attr('type') != 'submit' && $(this).attr('type') != 'textarea' && $(this).attr('type') != 'reset') { 
var i = $('.enterIndex').index($(this)); 
var n = $('.enterIndex').length; 
if (i < n - 1) { 
if ($(this).attr('type') != 'radio') 
{ 
NextDOM($('.enterIndex'),i); 
} 
else { 
var last_radio = $('.enterIndex').index($('.enterIndex[type=radio][name=' + $(this).attr('name') + ']:last')); 
NextDOM($('.enterIndex'),last_radio); 
} 
} 
return false; 
} 
} 
function NextDOM(myjQueryObjects,counter) { 
if (myjQueryObjects.eq(counter+1)[0].disabled) { 
NextDOM(myjQueryObjects, counter + 1); 
} 
else { 
myjQueryObjects.eq(counter + 1).trigger('focus'); 
} 
}

方法二(转载网络)
document.onkeydown = function(evt) { 
var isie = (document.all) ? true : false; 
var key; 
var srcobj; 
alert(isie); 
if (isie) { 
key = event.keyCode; 
srcobj = event.srcElement; 
} 
else { 
alert(evt); 
key = evt.which; 
srcobj = evt.target; 
} 
if (key == 13 && srcobj.type != 'button' && srcobj.type != 'submit' && srcobj.type != 'reset' && srcobj.type != 'textarea' && srcobj.type != '') { 
if (isie) { 
event.keyCode = 9; 
} 
else { 
var el = getNextElement(evt.target); 
if (el.type != 'hidden') 
el.focus(); 
else 
while (el.type == 'hidden') 
el = getNextElement(el); 
el.focus(); 
return false; 
} 
} 
} 
document.onkeyup = function(evt) { 
var isie = (document.all) ? true : false; 
var key; 
var srcobj; 
alert(isie); 
if (isie) { 
key = event.keyCode; 
srcobj = event.srcElement; 
} 
else { 
alert(evt); 
key = evt.which; 
srcobj = evt.target; 
} 
if (key == 13 && srcobj.type != 'button' && srcobj.type != 'submit' && srcobj.type != 'reset' && srcobj.type != 'textarea' && srcobj.type != '') { 
if (isie) { 
event.keyCode = 9; 
} 
else { 
var el = getNextElement(evt.target); 
if (el.type != 'hidden') 
el.focus(); 
else 
while (el.type == 'hidden') 
el = getNextElement(el); 
el.focus(); 
return false; 
} 
} 
} 
function getNextElement(field) { 
var form = field.form; 
for (var e = 0; e < form.elements.length; e++) { 
if (field == form.elements[e]) 
break; 
} 
return form.elements[++e % form.elements.length]; 
} function document.onkeydown() { 
var e = event.srcElement; 
if (event.keyCode == 13 && e.tagName == "INPUT" && e.type == "text") 
event.keyCode = 9; 
}
Javascript 相关文章推荐
两种WEB下的模态对话框 (asp.net或js的分别实现)
Dec 02 Javascript
关于JavaScript中var声明变量作用域的推断
Dec 16 Javascript
JQuery记住用户名密码实现下次自动登录功能
Apr 27 Javascript
Angular.js中数组操作的方法教程
Jul 31 Javascript
详解Vue文档中几个易忽视部分的剖析
Mar 24 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
Jun 08 Javascript
AngularJS ui-router刷新子页面路由的方法
Jul 23 Javascript
一些你可能不熟悉的JS知识点总结
Mar 15 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
Nov 13 Javascript
JS删除对象中某一属性案例详解
Sep 08 Javascript
ant design vue datepicker日期选择器中文化操作
Oct 28 Javascript
详解jQuery的核心函数和事件处理
Feb 18 jQuery
在次封装easyui-Dialog插件实现代码
Nov 14 #Javascript
jQueryUI如何自定义组件实现代码
Nov 14 #Javascript
Jquery常用技巧收集整理篇
Nov 14 #Javascript
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
Nov 11 #Javascript
有关DOM元素与事件的3个谜题
Nov 11 #Javascript
入门基础学习 ExtJS笔记(一)
Nov 11 #Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
Nov 11 #Javascript
You might like
smarty section简介与用法分析
2008/10/03 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
PHP检测数据类型的几种方法(总结)
2017/03/04 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
JavaScript 格式字符串的应用
2010/03/29 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
2014/11/23 Javascript
jQuery仿Flash上下翻动的中英文导航菜单实例
2015/03/10 Javascript
JavaScript检查数字是否为整数或浮点数的方法
2015/06/09 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
详解Vue2.x-directive的学习笔记
2017/07/17 Javascript
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
electron + vue项目实现打印小票功能及实现代码
2018/11/25 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
Python while 循环使用的简单实例
2016/06/08 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
教你如何编写、保存与运行Python程序的方法
2019/07/12 Python
Python利用逻辑回归分类实现模板
2020/02/15 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
Agoda.com官方网站:便宜预订全球酒店,高达80%的折扣
2018/04/04 全球购物
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
EJB发布WEB服务一般步骤
2012/10/31 面试题
艺术节主持词
2014/04/02 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
群众路线四风对照检查材料
2014/11/04 职场文书
仓库保管员岗位职责
2015/02/09 职场文书
现货白银电话营销话术
2015/05/29 职场文书
《这片土地是神圣的》教学反思
2016/02/16 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏