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 相关文章推荐
jQuery 操作option的实现代码
Mar 03 Javascript
基于JQuery的多标签实现代码
Sep 19 Javascript
你必须知道的Javascript知识点之"单线程事件驱动"的使用
Apr 23 Javascript
jquery实现预览提交的表单代码分享
May 21 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
Nov 29 Javascript
AngularJS表达式讲解及示例代码
Aug 16 Javascript
vue.js实例todoList项目
Jul 07 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
Feb 08 Javascript
微信小程序wxml列表渲染原理解析
Nov 27 Javascript
压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)
Feb 03 Javascript
node.js 微信开发之定时获取access_token
Feb 07 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
May 31 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获取访问设备信息的方法示例
2019/02/20 PHP
用JS实现一个页面多个css样式实现
2008/05/29 Javascript
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
jQuery find和children方法使用
2011/01/31 Javascript
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
2015/11/30 Javascript
jQuery自定义滚动条完整实例
2016/01/08 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
2016/05/26 Javascript
AngularJS equal比较对象实例详解
2016/09/14 Javascript
微信小程序  生命周期详解
2016/10/27 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
2016/12/27 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
2017/04/13 Javascript
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
在vue-cli项目中使用bootstrap的方法示例
2018/04/21 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
js实现带箭头的进度流程
2020/03/26 Javascript
Python中防止sql注入的方法详解
2017/02/25 Python
Python实现的栈(Stack)
2018/01/26 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
Python实现把类当做字典来访问
2019/12/16 Python
python复合条件下的字典排序
2020/12/18 Python
使用css3背景渐变中的透明度来设置不同颜色的背景渐变
2014/03/31 HTML / CSS
IE9下html5初试小刀
2010/09/21 HTML / CSS
意大利火车票和铁路通行证专家:ItaliaRail
2019/01/22 全球购物
广州品高软件.net笔面试题目
2012/04/18 面试题
大学生求职简历的自我评价
2013/10/14 职场文书
求职简历推荐信范文
2013/12/02 职场文书
优秀通讯员事迹材料
2014/01/28 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
个人整改措施落实情况汇报
2014/10/29 职场文书
简历自我评价优缺点
2015/03/11 职场文书
2016年9月份红领巾广播稿
2015/12/21 职场文书