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 相关文章推荐
JavaScript开发规范要求(规范化代码)
Aug 16 Javascript
js 判断一组日期是否是连续的简单实例
Jul 11 Javascript
利用yarn实现一个webpack+react种子
Oct 25 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
Nov 18 Javascript
完全深入学习Bootstrap表单
Nov 28 Javascript
Bootstrap php制作动态分页标签
Dec 23 Javascript
JS和JQuery实现雪花飘落效果
Nov 30 jQuery
微信小程序scroll-view实现字幕滚动
Jul 14 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
Dec 13 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
Sep 18 Javascript
d3.js实现图形拖拽
Dec 19 Javascript
vue使用screenfull插件实现全屏功能
Sep 17 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 preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
php中session使用示例
2014/03/29 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
幻灯片带网页设计中的20个奇妙应用示例小结
2012/05/27 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
js中同步与异步处理的方法和区别总结
2013/12/25 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
基于javascript实现样式清新图片轮播特效
2016/03/30 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
js删除数组中某几项的方法总结
2019/01/16 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
2020/06/02 Javascript
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
python遍历目录的方法小结
2016/04/28 Python
django连接mysql配置方法总结(推荐)
2018/08/18 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
python画蝴蝶曲线图的实例
2019/11/21 Python
Python实现把类当做字典来访问
2019/12/16 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
2020/02/05 Python
python第三方库学习笔记
2020/02/07 Python
Pycharm 跳转回之前所在页面的操作
2021/02/05 Python
HTML5新增的Css选择器、伪类介绍
2013/08/07 HTML / CSS
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
博士研究生自我鉴定范文
2013/12/04 职场文书
新员工欢迎词
2014/01/12 职场文书
人事专员岗位说明书
2014/07/29 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
党的群众路线教育实践活动党员个人剖析材料
2014/10/08 职场文书
学生抄作业检讨书(2篇)
2014/10/17 职场文书
介绍信范文大全
2015/05/07 职场文书