js 处理input元素为数字

在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, 这样可支持不同浏览器

实例代码

	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不是很适中

 

 

   

   

 

  

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值