基于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 相关文章推荐
Track Image Loading效果代码分析
Aug 13 Javascript
利用jQuery 实现GridView异步排序、分页的代码
Feb 06 Javascript
js通过googleAIP翻译PHP系统的语言配置的实现代码
Oct 17 Javascript
禁止ajax缓存获取程序最新数据的方法
Nov 19 Javascript
jquery实现图片预加载
Dec 25 Javascript
BootStrap轮播HTML代码(推荐)
Dec 10 Javascript
JQuery ZTree使用方法详解
Jan 07 Javascript
import与export在node.js中的使用详解
Sep 28 Javascript
vue抽出组件并传值实例
Jul 31 Javascript
vue添加自定义右键菜单的完整实例
Dec 08 Vue.js
vscode中使用npm安装babel的方法
Aug 02 Javascript
JavaScript架构localStorage特殊场景下二次封装操作
Jun 21 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优于Node.js的五大理由分享
2012/09/15 PHP
PHP实现基于文本的摩斯电码生成器
2016/01/11 PHP
PHP获取真实客户端的真实IP
2017/03/07 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
简单的php购物车代码
2020/06/05 PHP
Extjs 几个方法的讨论
2010/01/28 Javascript
js select常用操作控制代码
2010/03/16 Javascript
使用vue + less 实现简单换肤功能的示例
2018/02/21 Javascript
详解基于Node.js的HTTP/2 Server实践
2018/05/31 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
JavaScript Dom 绑定事件操作实例详解
2019/10/02 Javascript
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
[05:07]DOTA2英雄梦之声_第14期_暗影恶魔
2014/06/20 DOTA
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
python找出列表中大于某个阈值的数据段示例
2019/11/24 Python
关于Pytorch的MLP模块实现方式
2020/01/07 Python
利用python绘制正态分布曲线
2021/01/04 Python
Python plt 利用subplot 实现在一张画布同时画多张图
2021/02/26 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
html5手机键盘弹出收起的处理
2020/01/20 HTML / CSS
丝芙兰意大利官方网站:Sephora.it
2019/12/13 全球购物
历史系毕业生自荐信
2013/10/28 职场文书
英语专业学生个人求职信
2014/01/28 职场文书
小学生运动会通讯稿
2014/09/23 职场文书
2015年扫黄打非工作总结
2015/05/13 职场文书
公司催款律师函
2015/05/27 职场文书
个人销售励志奋斗口号
2019/12/05 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python
python编写五子棋游戏
2021/05/25 Python
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
Redis高可用集群redis-cluster详解
2022/03/20 Redis
Python读写yaml文件
2022/03/20 Python