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 相关文章推荐
JS判断元素为数字的奇异写法分享
Aug 01 Javascript
extjs_02_grid显示本地数据、显示跨域数据
Jun 23 Javascript
Vuejs第十篇之vuejs父子组件通信
Sep 06 Javascript
JavaScript获取中英文混合字符串长度的方法示例
Feb 04 Javascript
javascript验证香港身份证的格式或真实性
Feb 07 Javascript
微信小程序 slider的简单实例
Apr 19 Javascript
本地存储localStorage用法详解
Jul 31 Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
Mar 14 Javascript
详解使用jest对vue项目进行单元测试
Sep 07 Javascript
vue-devtools的安装和使用步骤详解
Oct 17 Javascript
Vue3+elementui plus创建项目的方法
Dec 01 Vue.js
vue整合百度地图显示指定地点信息
Apr 06 Vue.js
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
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
php实现根据词频生成tag云的方法
2015/04/17 PHP
Zend Framework教程之Zend_Config_Xml用法分析
2016/03/23 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
BOOM vs RR BO3 第二场2.13
2021/03/10 DOTA
JS特权方法定义作用以及与公有方法的区别
2013/03/18 Javascript
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
每天一篇javascript学习小结(RegExp对象)
2015/11/17 Javascript
AngularJS Select(选择框)使用详解
2017/01/18 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
2017/02/12 Javascript
利用原生JS实现data方法示例代码
2019/05/28 Javascript
Node.js 的 GC 机制详解
2019/06/03 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
2019/11/09 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
python数据结构之链表的实例讲解
2017/07/25 Python
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
python Kmeans算法原理深入解析
2019/08/23 Python
使用python绘制二维图形示例
2019/11/22 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
python获得命令行输入的参数的两种方式
2020/11/02 Python
css3实现圆锥渐变conic-gradient效果
2020/02/12 HTML / CSS
详解rem 适配布局
2018/10/31 HTML / CSS
印度婴儿用品在线商店:Firstcry.com
2016/12/05 全球购物
一份Java笔试题
2012/02/21 面试题
爱心捐助倡议书
2014/05/19 职场文书
企业安全生产责任书范本
2014/07/28 职场文书
质检员岗位职责
2015/02/03 职场文书
个人年终总结开头
2015/03/06 职场文书
客户答谢会致辞
2015/07/30 职场文书
python用海龟绘图写贪吃蛇游戏
2021/06/18 Python