Javascript控制input输入时间格式的方法
本文实例讲述了Javascript控制input输入时间格式的方法。分享给大家供大家参考。具体分析如下:
之前做了一个Javascript控制时间格式的输入,主要用到了keydown和keyup两个事件,但感觉写的很复杂而且还有bug。
今日了解了一下keypress事件与keydown和keyup的区别。大致如下(目前只了解这么多):
keydown:按键按下的时候触发,通过event可以获取到keyCode,可以获取到文本框输入之前的值;
keyup:按键弹出(松开)时触发,通过event可以获取到keyCode,可以获取到文本框输入之后的值;
keypress:此事件在Chrome和IE中基本相同,但Firefox有点不一样;
1、在Chrome和IE中:只要按下的键能在文本框中出现字符则会触发(如输入字母、数字、符号等),通过event可以获取到keyCode,event.key为undefined;不能出现字符的则不会触发(如方向键、Home、Backspace等)
2、在火狐中:字母、数字、符号、方向、退格等按键均能触发,均可以通过event.key获取按键名,如果所按的键能输出字符则event.keyCode为0,如果不能输出字符则event.keyCode为对应的ASCII码
回到正题,先直接看代码(上面提到的event就相当于下面代码中的e):
$("input").on({
keyup:function(e){
!/^[\d:]+$/.test(e.target.value)&&(e.target.value="");
},
keypress:function(e){
if(isFF&&e.keyCode!==0){
///在火狐中按任意键都会触发keypress事件,而在IE/Chrome中只有按下能输出字符的按键才会触发
///针对火狐,e.keyCode!==0则按下了退格、方向、Home等按键之一
}else{
if(e.target.value.length>7)
returnfalse;
if(/\d{2}$/.test(e.target.value)){
e.target.value+=":";
}
varchar=String.fromCharCode(e.keyCode===0?e.which:e.keyCode);
if(!/^\d/.test(char))
returnfalse;
}
}
});
通过isFF&&e.keyCode!==0来区分Firefox能输出字符的按键和不能输出字符的按键,由于Firefox中e.keyCode不一定能取到值,所以使用了e.which来取代。
keyup是用于处理使用输入法时能输入中文或字母的问题。
通过String.fromCharCode()得到ASCII码对应的字符。
希望本文所述对大家的javascript程序设计有所帮助。
相关文章
- javascript 基础_JavaScript高级编程
- javascript typescript_typescript python
- 12 个常用的 JavaScript 函数
- 【说站】javascript原始类型是什么?如何鉴别?
- 【说站】JavaScript定义函数的两种方法
- JavaScript期约Promise
- 分享 8 个常用的 JavaScript 库,也许你用的上
- JavaScript实现Linux命令控制(js执行linux命令)
- 用javascript控制iframe滚动的代码
- 用javascript控制表格行的展开和隐藏的代码
- 用javascript来控制链接的target属性的代码
- javascript轻松控制表格列样式的脚本代码
- javascript键盘事件全面控制脚本代码
- javascript检测(控制)上传文件大小
- JavaScript面向对象之Prototypes和继承
- javascript算法题求任意一个1-9位不重复的N位数在该组合中的大小排列序号
- javascript控制swfObject应用介绍
- JavaScript控制Session操作方法
- 使用javascript控制cookie显示和隐藏背景图
- Javascript原型链和原型的一个误区
- Javascript中创建自定义对象的方法汇总