基于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 相关文章推荐
js取得url地址参数实例
Feb 22 Javascript
下拉菜单点击实现连接跳转功能的js代码
May 19 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
Jul 30 Javascript
js数组的基本用法及数组根据下标(数值或字符)移除元素
Oct 20 Javascript
JQuery each打印JS对象的方法
Nov 13 Javascript
jQuery中toggle()函数的使用实例
Apr 17 Javascript
Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
May 17 Javascript
动态更新highcharts数据的实现方法
May 28 Javascript
完美JQuery图片切换效果的简单实现
Jul 21 Javascript
bootstrap模态框垂直居中效果
Dec 03 Javascript
js实现滑动到页面底部自动加载更多功能
Feb 15 Javascript
React 使用Hooks简化受控组件的状态绑定
Mar 18 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
也谈截取首页新闻 - 范例
2006/10/09 PHP
php根据生日计算年龄的方法
2015/07/13 PHP
orm获取关联表里的属性值
2016/04/17 PHP
微信小程序发送订阅消息的方法(php 为例)
2019/10/30 PHP
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
JSP跨iframe如何传递参数实现代码
2013/09/21 Javascript
js获取和设置属性的方法
2014/02/20 Javascript
一个简单的jquery进度条示例
2014/04/28 Javascript
javascript对中文按照拼音排序代码
2014/08/20 Javascript
Yii2使用Bootbox插件实现自定义弹窗
2015/04/02 Javascript
JavaScript 事件入门知识
2015/04/13 Javascript
AngularJS基础 ng-selected 指令简单示例
2016/08/03 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
2017/06/26 jQuery
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
vue写h5页面的方法总结
2019/02/12 Javascript
详解Vue demo实现商品列表的展示
2019/05/07 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
实现python版本的按任意键继续/退出
2016/09/26 Python
python 处理微信对账单数据的实例代码
2019/07/19 Python
Django使用Celery加redis执行异步任务的实例内容
2020/02/20 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
Django+RestFramework API接口及接口文档并返回json数据操作
2020/07/12 Python
Django Auth用户认证组件实现代码
2020/10/13 Python
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
推荐10个HTML5响应式框架
2016/02/25 HTML / CSS
英国巧克力贸易公司:Chocolate Trading Company
2017/03/21 全球购物
幼儿园长自我鉴定
2013/10/17 职场文书
幼儿园感恩节活动方案
2014/10/06 职场文书
会计岗位职责
2015/02/03 职场文书
个人年底工作总结
2015/03/10 职场文书