Jquery实现input keydown回车触发事件(任意触发、指定触发)
来源:互联网 发布:如何禁用端口 编辑:程序博客网 时间:2024/05/22 01:58
一、说明
回车触发事件,本文只提一下两种:
1、任意触发:不管当前焦点在哪个input输入框,只要回车就触发事件,如登录界面。
2、指定触发:指定某个input输入框回车时才触发事件。
二、实现代码
1、多次触发
html代码部分
<body onkeydown="keyDelivery();">输入框1:<input id="inputId1" name="inputName1" class="className1"/><br>输入框2:<input id="inputId2" name="inputName2" class="className2"/><br><!-- 引入Jquery --><script src="${dynamicDomain }/static/js/jquery-1.11.1.min.js"></script></body>
js代码部分
<script type="text/javascript">function keyDelivery(){//对应body上写onkeydown="keyDelivery();"//第1种,任意触发$(document).keydown(function(event) {var event = arguments.callee.caller.arguments[0] || window.event;// 消除浏览器差异if (event.keyCode == 13) { alert('登录事件');//登录事件}});//第2种,指定触发$('#inputId1').keydown(function(event) {if (event.keyCode == 13) {alert('你输入的值是' + $('#inputId1').val());}});}</script>2、单次触发
平时大家使用keydown大家都是多次触发的多,但是细心的人通过调试会发现,使用指定触发回车一次,却多次触发js function事件,这个是因为keydown处理回车问题,会累积之前的次数。(刷新浏览器重新计算)什么累积?
简单的说就是if (event.keyCode == 13) {//代码块}中的代码块会执行1次、2次、3次、4次、5次,可以做个测试
============================测试==========================
html代码不变
js代码
<script type="text/javascript">var num = 1;function keyDelivery(){$('#inputId1').keydown(function(event) {var event = arguments.callee.caller.arguments[0] || window.event;// 消除浏览器差异if (event.keyCode == 13) {console.log('结果=' + num); num++;}});}</script>浏览器控制台打印结果第一次回车,触发一次 事件
结果=1
第二次回车,触发两次 事件
结果=2
结果=3
第三次回车,触发三次 事件
结果=4
结果=5
结果=6
......
一直累积,很烦人
总结:keydown处理回车问题,浏览器会累积之前的次数。
四、Jquery实现input keydown指定触发(正确写法)将想要触发的事件放入到$(this).get(0).onkeyup = function(){ //事件 },如代码所示:
<script type="text/javascript">var num = 1;function keyDelivery(){$('#inputId1').keydown(function(event) {var event = arguments.callee.caller.arguments[0] || window.event;// 消除浏览器差异if (event.keyCode == 13) {$(this).get(0).onkeyup = function(){ console.log('结果=' + num);num++;}}});}</script>
===================再次测试===============
浏览器控制台打印结果
回车第一次,触发一次 事件结果=1
回车第二次,触发一次 事件
结果=2
....
回车第n次,触发一次 事件
结果=n
OK,这样不管我们在input输入框怎么回车,都只会触发事件一次。
附(可忽略):对于keydown回车浏览器会累积次数问题,不明白的可参考CSDN论坛精帖,我也是看了改帖子才理解的:http://bbs.csdn.net/topics/350228744
阅读全文
0 0
- Jquery实现input keydown回车触发事件(任意触发、指定触发)
- jQuery回车触发事件
- jquery 回车触发事件
- jquery实现按回车触发事件
- Jquery 回车触发按钮事件
- jquery按回车触发事件
- jquery中如何实现按回车触发按钮事件
- jquery中如何实现按回车触发按钮事件
- jquery中如何实现按回车触发按钮事件
- jquery中如何实现按回车触发按钮事件
- 按回车触发事件
- TextBox回车触发事件
- 回车触发提交事件
- TEXTBOX回车触发事件
- 回车触发按钮事件
- js触发回车事件
- js触发回车事件
- java回车事件触发
- NTFS文件系统数据恢复----解析MFT表
- SpringBoot报错(五) Failed to load ApplicationContext (2)
- Android线程池
- [BFS][哈希]Magic Squares 魔板
- linux查看历史命令history
- Jquery实现input keydown回车触发事件(任意触发、指定触发)
- leetcode 402. Remove K Digits 贪心算法 + DFS深度优先遍历
- Android SD卡存储封装类
- 【Spark】worker、executor、stage、task、partition关系
- spark(6)-spark RDD(course14)
- SQLite 约束
- 关于iview的使用心得
- 关于Android studio3.0的坑之butterknife 7.0.1(低版本)
- 关于oralce簇表的介绍