Javascript控制input输入时间格式的方法


Posted in Javascript onJanuary 28, 2015

本文实例讲述了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):

var isFF = /firefox/i.test(navigator.userAgent);

$("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)

                return false;

            if (/\d{2}$/.test(e.target.value)) {

                e.target.value += ':';

            }

            var char = String.fromCharCode(e.keyCode === 0 ? e.which : e.keyCode);

            if (!/^\d/.test(char))

                return false;

        }

    }

});

通过isFF && e.keyCode !== 0来区分Firefox能输出字符的按键和不能输出字符的按键,由于Firefox中e.keyCode不一定能取到值,所以使用了e.which来取代。

keyup是用于处理使用输入法时能输入中文或字母的问题。

通过String.fromCharCode()得到ASCII码对应的字符。

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
不用MOUSEMOVE也能滑动啊
May 23 Javascript
js 强制弹出窗口代码研究-又一款代码
Mar 20 Javascript
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
Apr 07 Javascript
treepanel动态加载数据实现代码
Dec 15 Javascript
js读写(删除)Cookie实例详解
Apr 17 Javascript
判断ie的两种简单方法
Aug 12 Javascript
js replace替换所有匹配的字符串
Feb 13 Javascript
js获取url中"?"后面的字串方法
May 15 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
Jun 20 Javascript
推荐10款扩展Web表单的JS插件
Dec 25 Javascript
webpack公共组件引用路径简化小技巧
Jun 15 Javascript
用JS实现一个简单的打砖块游戏
Dec 11 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
Jan 28 #Javascript
js封装可使用的构造函数继承用法分析
Jan 28 #Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
Jan 28 #Javascript
javascript原型链继承用法实例分析
Jan 28 #Javascript
Jquery 实现图片轮换
Jan 28 #Javascript
javascript查询字符串参数的方法
Jan 28 #Javascript
Jquery 实现弹出层插件
Jan 28 #Javascript
You might like
php中文件上传的安全问题
2006/10/09 PHP
php将图片保存入mysql数据库失败的解决方法
2014/12/27 PHP
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
javascript中[]和{}对象使用介绍
2013/03/20 Javascript
求数组最大最小值方法适用于任何数组
2013/08/16 Javascript
jQuery实现多级下拉菜单jDropMenu的方法
2015/08/28 Javascript
实例代码详解jquery.slides.js
2015/11/16 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
2016/09/23 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
javascript中的后退和刷新实现方法
2016/11/10 Javascript
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
Node.js静态服务器的实现方法
2018/02/28 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
微信小程序如何调用图片接口API并居中显示
2019/06/29 Javascript
JavaScript 中的无穷数(Infinity)详解
2020/02/13 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
javascript实现移动端轮播图
2020/12/09 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
[03:17]史诗级大片应援2018DOTA2国际邀请赛 致敬每一位坚守遗迹的勇士
2018/07/20 DOTA
Python读写unicode文件的方法
2015/07/10 Python
python如何实现从视频中提取每秒图片
2020/10/22 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
python 模拟登陆github的示例
2020/12/04 Python
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
一名毕业生的自我鉴定
2013/12/04 职场文书
业务部主管岗位职责
2014/01/29 职场文书
情况说明书格式范文
2014/05/06 职场文书
2014工程部年度工作总结
2014/12/17 职场文书
企业廉洁教育心得体会
2016/01/20 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android