基于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 调整select 位置的函数
Feb 21 Javascript
页面只有一个text的时候,回车自动submit的解决方法
Aug 12 Javascript
js原生态函数中使用jQuery中的 $(this)无效的解决方法
May 25 Javascript
通过JS来判断页面控件是否获取焦点
Jan 03 Javascript
正则表达式(语法篇推荐)
Jun 24 Javascript
jQuery Ajax File Upload实例源码
Dec 12 Javascript
JS获取多维数组中相同键的值实现方法示例
Jan 06 Javascript
bootstrap table支持高度百分比的实例代码
Feb 28 Javascript
Node爬取大批量文件的方法示例
Jun 28 Javascript
基于jQuery实现可编辑的表格
Dec 11 jQuery
使用Vue-cli 中为单独页面设置背景图片铺满全屏
Jul 17 Javascript
详解JavaScript执行模型
Nov 16 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简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
PHP编程中的Session阻塞问题与解决方法分析
2017/08/07 PHP
jscript之List Excel Color Values
2007/06/13 Javascript
Add a Table to a Word Document
2007/06/15 Javascript
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
jQuery 连续列表实现代码
2009/12/21 Javascript
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
js 判断脚本加载完毕的代码
2011/07/13 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
解析JavaScript中的不可见数据类型
2013/12/02 Javascript
实例讲解JS中数组Array的操作方法
2014/05/09 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
AngularJS基础 ng-non-bindable 指令详细介绍
2016/08/02 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
javascript数据结构中栈的应用之符号平衡问题
2017/04/11 Javascript
vue生成文件本地打开查看效果的实例
2018/09/06 Javascript
Vue页面渲染中key的应用实例教程
2021/01/12 Vue.js
Python2.7简单连接与操作MySQL的方法
2016/04/27 Python
python pytest进阶之fixture详解
2019/06/27 Python
Python3常用内置方法代码实例
2019/11/18 Python
python实现指定ip端口扫描方式
2019/12/17 Python
pytorch的batch normalize使用详解
2020/01/15 Python
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
毕业生求职简历的自我评价
2013/10/23 职场文书
小学生班会演讲稿
2014/01/09 职场文书
党支部书记先进事迹
2014/01/17 职场文书
省级四好少年事迹材料
2014/01/25 职场文书
销售人员自我评价
2014/02/01 职场文书
文明餐桌行动实施方案
2014/02/19 职场文书
七匹狼男装广告词
2014/03/21 职场文书
家长会学生演讲稿
2014/04/26 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
安全责任协议书范本
2016/03/23 职场文书
导游词之青岛崂山
2019/12/27 职场文书
Python利用capstone实现反汇编
2022/04/06 Python