基于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 相关文章推荐
JScript中的undefined和&quot;undefined&quot;的区别
Mar 08 Javascript
javascript 面向对象编程 function也是类
Sep 17 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
Nov 12 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
Dec 12 Javascript
php析构函数的具体用法小结
Mar 11 Javascript
jQuery+ajax中getJSON() 用法实例
Dec 22 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
Aug 04 Javascript
jQuery 监控键盘一段时间没输入
Apr 22 Javascript
基于JQuery及AJAX实现名人名言随机生成器
Feb 10 Javascript
深入理解ES6 Promise 扩展always方法
Sep 26 Javascript
vue使用iframe嵌入网页的示例代码
Jun 09 Javascript
小程序如何支持使用 async/await详解
Sep 12 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中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
2019/07/08 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
2020/01/23 PHP
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
查询绑定数据岛的表格中的文本并修改显示方式的js代码
2009/12/15 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
使用jquery给新生的th绑定hover事件的实例
2017/02/10 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
JavaScript实现简单的四则运算计算器完整实例
2017/04/28 Javascript
Javacript中自定义的map.js  的方法
2017/11/26 Javascript
tweenjs缓动算法的使用实例分析
2019/08/26 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
JavaScript实现PC端四格密码输入框功能
2020/02/19 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
2020/07/24 Javascript
使用python装饰器验证配置文件示例
2014/02/24 Python
Python实例一个类背后发生了什么
2016/02/09 Python
对numpy中的where方法嵌套使用详解
2018/10/31 Python
Numpy之random函数使用学习
2019/01/29 Python
Python获取好友地区分布及好友性别分布情况代码详解
2019/07/10 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
如何用Python编写一个电子考勤系统
2021/02/08 Python
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
html5 拖拽及用 js 实现拖拽功能的示例代码
2020/10/23 HTML / CSS
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
生产厂长岗位职责
2014/02/21 职场文书
商铺租赁意向书
2014/04/01 职场文书
小学生操行评语大全
2014/04/22 职场文书
带刀到教室的检讨书
2014/10/04 职场文书
环境卫生整治简报
2015/07/20 职场文书
运动会三级跳加油稿
2015/07/21 职场文书
Python机器学习之底层实现KNN
2021/06/20 Python