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无阻塞加载具体方式
Jun 28 Javascript
获取鼠标在div中的相对位置的实现代码
Dec 30 Javascript
JavaScript分析、压缩工具JavaScript Analyser
Dec 31 Javascript
JS判断字符串包含的方法
May 05 Javascript
jQuery实现简洁的轮播图效果实例
Sep 07 Javascript
js基础之DOM中document对象的常用属性方法详解
Oct 28 Javascript
vue.js实现表格合并示例代码
Nov 30 Javascript
angular.JS实现网页禁用调试、复制和剪切
Mar 31 Javascript
vue项目打包上传github并制作预览链接(pages)
Apr 19 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
Aug 23 Javascript
解决Vue中 父子传值 数据丢失问题
Aug 27 Javascript
浅谈实现在线预览PDF的几种解决办法
Aug 10 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 ZipArchive压缩函数详解实例
2013/11/06 PHP
php需登录的文件上传管理系统
2020/03/21 PHP
laravel实现前后台路由分离的方法
2019/10/13 PHP
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
jquery选择器-根据多个属性选择示例代码
2013/10/21 Javascript
JavaScript事件类型中UI事件详解
2016/01/14 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
分分钟玩转Vue.js组件(二)
2017/03/01 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
js+canvas实现两张图片合并成一张图片的方法
2019/11/01 Javascript
JS实现网页端猜数字小游戏
2020/03/06 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
详解Python的Django框架中inclusion_tag的使用
2015/07/21 Python
遍历python字典几种方法总结(推荐)
2016/09/11 Python
python入门教程之识别验证码
2017/03/04 Python
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
python使用pymongo操作mongo的完整步骤
2019/04/13 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
python编写俄罗斯方块
2020/03/13 Python
python 追踪except信息方式
2020/04/25 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
python定义类的简单用法
2020/07/24 Python
经验丰富程序员才知道的8种高级Python技巧
2020/07/27 Python
详解Open Folder as PyCharm Project怎么添加的方法
2020/12/29 Python
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
微软瑞士官方网站:Microsoft瑞士
2018/04/20 全球购物
前台文员岗位职责及工作流程
2013/11/19 职场文书
会议邀请书范文
2014/02/02 职场文书
小学生检讨书大全
2014/02/06 职场文书
小学生期末评语
2014/04/21 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
交通事故和解协议书
2015/01/27 职场文书
2016年记者节感言
2015/12/08 职场文书