您的位置:首页 > Web前端 > JavaScript

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

实例代码

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)
按键键码按键键码按键键码按键键码
A65J74S83149
B66K75T84250
C67L76U85351
D68M77V86452
E69N78W87553
F70O79X88654
G71P80Y89755
H72Q81Z90856
I73R82048957
  

按下键盘时会触发键盘事件,次序为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不是很适中

 

 

   

   

 

  

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: