js 处理input元素为数字
2016-07-22 14:19
501 查看
在js中,var x = event.keyCode; (数字,表示 Unicode 字符代码或 Unicode 键代码)
keyCode 属性返回onkeypress事件触发的键的值的字符代码,或者 onkeydown或 onkeyup事件的键的代码。
两种代码类型的区别是:
字符代码 - 表示 ASCII 字符的数字
键盘代码 - 表示键盘上真实键的数字
两种类型的值不是都相等的,例如小写字符 "w" 和大写字符 "W" 有相同的键盘代码,因为他们他们键盘上 ( "W" 代码为 "87"),但是它们有不同的字符代码,两个字符输出是不一样的( "w" 和 "W" 字符代码为 "119" 和 "87")
在 Firefox 中,, keyCode 属性在 onkeypress 事件中是无效的 (返回 0)。浏览器兼容问题,可以一起使用 which和 keyCode 属性来解决:
var x = event.which || event.keyCode; // 使用 which 或 keyCode, 这样可支持不同浏览器
实例代码
其他的参考
按下键盘时会触发键盘事件,次序为keydown -> keypress ->keyup。
1、keydown、keypress事件触发在文字还没敲进文本框,这时如果在keydown、keypress事件中输出文本框中的文本,得到的是触发键盘事件前的文本,而keyup事件触发时全部键盘事件的操作已完成,获得的是触发键盘事件后的文本
2、在keyup事件中没法阻止浏览器默许事件,因为在keypress时,浏览器默许行为已完成,即将文字输入文本框(尽管这时还没显示),这个时候不论是preventDefault还是return false,都不能阻止在文本框中输入文字的行为,如要阻止在文本框中输入文字,必须在keydown或keypress时阻止
3、keypress事件与keydown和keyup的主要区别
1)对中文输入法支撑欠好,没法响应中文输入
2)没法响应系统功能键(如delete,backspace)
3)由于前面两个制约,keyCode与keydown和keyup不是很适中
keyCode 属性返回onkeypress事件触发的键的值的字符代码,或者 onkeydown或 onkeyup事件的键的代码。
两种代码类型的区别是:
字符代码 - 表示 ASCII 字符的数字
键盘代码 - 表示键盘上真实键的数字
两种类型的值不是都相等的,例如小写字符 "w" 和大写字符 "W" 有相同的键盘代码,因为他们他们键盘上 ( "W" 代码为 "87"),但是它们有不同的字符代码,两个字符输出是不一样的( "w" 和 "W" 字符代码为 "119" 和 "87")
在 Firefox 中,, keyCode 属性在 onkeypress 事件中是无效的 (返回 0)。浏览器兼容问题,可以一起使用 which和 keyCode 属性来解决:
var x = event.which || event.keyCode; // 使用 which 或 keyCode, 这样可支持不同浏览器
实例代码
var $pageIndex = $("input.page-number"); // 页码输入 $pageIndex.keypress(function(event) { var key = event.keyCode || event.which; //enter delete if(event.keyCode == 13 || event.keyCode == 46){ return true; } //0 ~ 9 if(event.keyCode < 48 || event.keyCode >57){ return false; }else return true; } }); // 页码输入 $pageIndex.keyup(function(){ var total = $("#totalPage").attr("val"); var value = $(this).val(); //中文输入 及 负数 0 if(isNaN(value)){ $(this).val(1); }else if(parseInt(value)<=0){ $(this).val(1); } if(parseInt(value) > parseInt(total)){ $(this).val(total); } });
其他的参考
字母和数字键的键码值(keyCode) | |||||||
按键 | 键码 | 按键 | 键码 | 按键 | 键码 | 按键 | 键码 |
A | 65 | J | 74 | S | 83 | 1 | 49 |
B | 66 | K | 75 | T | 84 | 2 | 50 |
C | 67 | L | 76 | U | 85 | 3 | 51 |
D | 68 | M | 77 | V | 86 | 4 | 52 |
E | 69 | N | 78 | W | 87 | 5 | 53 |
F | 70 | O | 79 | X | 88 | 6 | 54 |
G | 71 | P | 80 | Y | 89 | 7 | 55 |
H | 72 | Q | 81 | Z | 90 | 8 | 56 |
I | 73 | R | 82 | 0 | 48 | 9 | 57 |
按下键盘时会触发键盘事件,次序为keydown -> keypress ->keyup。
1、keydown、keypress事件触发在文字还没敲进文本框,这时如果在keydown、keypress事件中输出文本框中的文本,得到的是触发键盘事件前的文本,而keyup事件触发时全部键盘事件的操作已完成,获得的是触发键盘事件后的文本
2、在keyup事件中没法阻止浏览器默许事件,因为在keypress时,浏览器默许行为已完成,即将文字输入文本框(尽管这时还没显示),这个时候不论是preventDefault还是return false,都不能阻止在文本框中输入文字的行为,如要阻止在文本框中输入文字,必须在keydown或keypress时阻止
3、keypress事件与keydown和keyup的主要区别
1)对中文输入法支撑欠好,没法响应中文输入
2)没法响应系统功能键(如delete,backspace)
3)由于前面两个制约,keyCode与keydown和keyup不是很适中
相关文章推荐
- js实现菜单折叠导航
- 在你的网页集成QQ推广即时聊天
- javascript 保留小数位数,四舍五入
- 实现HTML编码和解码的JavaScript工具类(未测试)
- 优化Javascript数据遍历(未测试)
- 关于 js 2个数组取差集怎么取
- js动态创建按钮 (未测试)
- js嵌套使用 双引号和单引号
- js和el表达式操作list
- javascript放在head和body之间的区别
- Web开发之-JSP学习总结-第四篇:自定义标签总结
- javaScript中的函数声明提升---函数声明与函数表达式
- js虚拟数字小键盘(未测试)
- JavaScript计算指定日期与当前日期的相差天数(未测试)
- js防刷新的倒计时代码(未测试)
- js合并单元格(未测试)
- javascript笔记——密码组合规则
- 使用JavaScript写的一个旋转的彩圈(未测试)
- JavaScript多选框的全选与取消(未测试)
- JavaScript本地对象 内置对象 宿主对象