基于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 相关文章推荐
Date对象格式化函数代码
Jul 17 Javascript
使用Mootools动态添加Css样式表代码,兼容各浏览器
Dec 12 Javascript
jquery选择器之属性过滤选择器详解
Jan 27 Javascript
jqueryUI里拖拽排序示例分析
Feb 26 Javascript
javascript移动开发中touch触摸事件详解
Mar 18 Javascript
JavaScript对象数组如何按指定属性和排序方向进行排序
Jun 15 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
Aug 18 Javascript
基于AngularJS的简单使用详解
Sep 10 Javascript
深入浅析Node环境和浏览器的区别
Aug 14 Javascript
vuejs实现折叠面板展开收缩动画效果
Sep 06 Javascript
vuex如何重置所有state(可定制)
Jan 17 Javascript
easyUI 实现的后台分页与前台显示功能示例
Jun 01 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 XML备份Mysql数据库
2009/05/27 PHP
微信支付开发发货通知实例
2016/07/12 PHP
Javascript Cookie读写删除操作的函数
2010/03/02 Javascript
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
JavaScript中的数组操作介绍
2014/12/30 Javascript
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
详解jQuery Mobile自定义标签
2016/01/06 Javascript
如何利用模板将HTML从JavaScript中抽离
2016/10/08 Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
2017/07/28 Javascript
vue router-link传参以及参数的使用实例
2017/11/10 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
react MPA 多页配置详解
2019/10/18 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
Python计算已经过去多少个周末的方法
2015/07/25 Python
DataFrame中的object转换成float的方法
2018/04/10 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
如何用Python做一个微信机器人自动拉群
2019/07/03 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
python实现代码审查自动回复消息
2021/02/01 Python
一款基于css3的列表toggle特效实例教程
2015/01/04 HTML / CSS
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
Troy-Bilt官网:草坪割草机、吹雪机、分蘖机等
2019/02/19 全球购物
阿联酋手表和配饰购物网站:Rivolishop
2019/11/25 全球购物
书香校园活动方案
2014/02/28 职场文书
美术教师岗位职责
2014/03/18 职场文书
贸易跟单员英文求职信
2014/04/19 职场文书
骨干教师培训方案
2014/05/06 职场文书
单位消防安全责任书
2014/07/23 职场文书
迎国庆演讲稿
2014/09/05 职场文书
新手,如何业余时间安排好写作、提高写作能力?
2019/10/21 职场文书
Java移除无效括号的方法实现
2021/08/07 Java/Android
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS