基于Jquery的实现回车键Enter切换焦点


Posted in Javascript onSeptember 14, 2010

接下来我们使用Jquery实现回车键Enter切换焦点,此代码在常用浏览器IE7, IE8, Firefox 3, Chrome 2 和 Safari 4测试通过。
使用的开发工具是微软VS2010+Jquery框架。
实现步骤如下
1、 首先引用Jquery类库
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
2、 Javascript代码

<script type="text/javascript"> 
$(function () { 
$('input:text:first').focus(); 
var $inp = $('input:text'); 
$inp.bind('keydown', function (e) { 
var key = e.which; 
if (key == 13) { 
e.preventDefault(); 
var nxtIdx = $inp.index(this) + 1; 
$(":input:text:eq(" + nxtIdx + ")").focus(); 
} 
}); 
}); 
</script>

分析:
$('input:text:first').focus();
页面初始化时,焦点定位第一个文本框内
var $inp = $('input:text');
取的type=文本框的元素集合
$inp.bind('keydown', function (e) {}
给文本框集合绑定'keydown'事件
var key = e.which;
取的当前按下的键值 比如Enter的键值=13
e.preventDefault();
可以阻止它的默认行为的发生而发生其他的事情,在这里我们组织PostBack发生,而是切换焦点。另外一个相近的方法是stopPropagation,它起到阻止js事件冒泡的作用。
事件代理用到了两个在JavaSciprt事件中常被忽略的特性:事件冒泡以及目标元素。当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发。这一过程被称为事件冒泡;这个事件从原始元素开始一直冒泡到DOM树的最上层。对任何一个事件来说,其目标元素都是原始元素,在我们的这个例子中也就是按钮。目标元素它在我们的事件对象中以属性的形式出现。使用事件代理的话我们可以把事件处理器添加到一个元素上,等待事件从它的子级元素里冒泡上来,并且可以很方便地判断出这个事件是从哪个元素开始的。
var nxtIdx = $inp.index(this) + 1;
取的元素集合inp中的下一个元素索引
$(":input:text:eq(" + nxtIdx + ")").focus();
定位焦点到集合的下一个元素
3.、HTML代码
<div> 
<asp:TextBox ID="txt1" runat="server" /><br /> 
<asp:TextBox ID="txt2" runat="server" /><br /> 
<asp:TextBox ID="txt3" runat="server" /><br /> 
<asp:TextBox ID="txt4" runat="server" /><br /> 
</div>

分析:页面上存放四个文本框
3、 运行程序
基于Jquery的实现回车键Enter切换焦点
那页面中如果有TextArea 元素,我们如何使用Enter切换焦点呢,办法是有的,如下充分运用了Jquery的一些特性。

4、 HTML代码

<div> 
<asp:TextBox ID="tb1" runat="server" class="cls" /><br /> 
<asp:TextBox ID="tb2" runat="server" class="cls" /><br /> 
<asp:TextBox ID="tb3" TextMode="MultiLine" runat="server" class="cls" /><br /> 
<asp:TextBox ID="tb4" runat="server" class="cls" /><br /> 
</div>

分析:
页面中所以的TextBox 引用Class=”cls”,便于后期的对页面元素的Jquery查询。

5、 Javascript代码

<script type="text/javascript"> 
$(function () { 
$('input:text:first').focus(); 
var $inp = $('.cls'); 
$inp.bind('keydown', function (e) { 
var key = e.which; 
if (key == 13) { 
e.preventDefault(); 
var nxtIdx = $inp.index(this) + 1; 
$(".cls:eq(" + nxtIdx + ")").focus(); 
} 
}); 
}); 
</script>

分析:
var $inp = $('.cls');
取的样式为cls的所有元素 赋值给变量inp
6、 运行效果
基于Jquery的实现回车键Enter切换焦点
作者:灵动生活
Javascript 相关文章推荐
关于Blog顶部的滚动导航条代码
Sep 25 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
Jan 06 Javascript
jQuery手动点击实现图片轮播特效
Apr 20 Javascript
js实现网页图片延时加载 提升网页打开速度
Jan 26 Javascript
jQuery中页面返回顶部的方法总结
Dec 30 Javascript
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
Apr 04 jQuery
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
Sep 21 Javascript
angular.js实现购物车功能
Oct 23 Javascript
详解写好JS条件语句的5条守则
Feb 28 Javascript
vue路由跳转传参数的方法
May 06 Javascript
利用JavaScript将Excel转换为JSON示例代码
Jun 14 Javascript
node.js中path路径模块的使用方法实例分析
Feb 13 Javascript
js输出列表实现代码
Sep 12 #Javascript
JavaScript日历实现代码
Sep 12 #Javascript
某页码显示的helper 少量调整,另附js版
Sep 12 #Javascript
网页中CDATA标记的说明
Sep 12 #Javascript
JavaScript小技巧 2.5 则
Sep 12 #Javascript
让JavaScript拥有类似Lambda表达式编程能力的方法
Sep 12 #Javascript
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
Sep 12 #Javascript
You might like
php开发过程中关于继承的使用方法分享
2011/06/17 PHP
PHP取整数函数常用的四种方法小结
2012/07/05 PHP
sql注入与转义的php函数代码
2013/06/17 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
2013/12/20 PHP
PHP调试函数和日志记录函数分享
2015/01/31 PHP
php+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
php利用嵌套数组拼接与解析json的方法
2017/02/07 PHP
PHP基于自定义类随机生成姓名的方法示例
2017/08/05 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
2019/08/02 PHP
Laravel5.1 框架响应基本用法实例分析
2020/01/04 PHP
js+html+css实现鼠标移动div实例
2013/01/30 Javascript
在Linux上用forever实现Node.js项目自启动
2014/07/09 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
jQuery中fadein与fadeout方法用法示例
2016/09/16 Javascript
KnockoutJS 3.X API 第四章之表单value绑定
2016/10/10 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
微信小程序 tabs选项卡效果的实现
2017/01/05 Javascript
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
在node环境下parse Smarty模板的使用示例代码
2019/11/15 Javascript
Python入门之modf()方法的使用
2015/05/15 Python
解决csv.writer写入文件有多余的空行问题
2018/07/06 Python
python生成九宫格图片
2018/11/19 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
2018/12/05 Python
python hashlib加密实现代码
2019/10/17 Python
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
美国时尚在线:Showpo
2017/09/08 全球购物
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
书香校园活动方案
2014/02/28 职场文书
工作岗位说明书模板
2014/05/09 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
2015年事业单位工作总结
2015/04/27 职场文书
演讲开场白台词大全
2015/05/29 职场文书
教务处教学工作总结
2015/08/10 职场文书
前端监听websocket消息并实时弹出(实例代码)
2021/11/27 Javascript