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确定对象类型方法
Mar 30 Javascript
script的async属性以非阻塞的模式加载脚本
Jan 15 Javascript
js将long日期格式转换为标准日期格式实现思路
Apr 07 Javascript
javascript同页面多次调用弹出层具体实例代码
Aug 16 Javascript
jquery衣服颜色选取插件效果代码分享
Aug 28 Javascript
JavaScript如何实现组合列表框中元素移动效果
Mar 01 Javascript
JavaScript学习小结之使用canvas画“哆啦A梦”时钟
Jul 24 Javascript
jQuery实现导航滚动到指定内容效果完整实例【附demo源码下载】
Sep 20 Javascript
Vue-Router实现页面正在加载特效方法示例
Feb 12 Javascript
微信小程序 定位到当前城市实现实例代码
Feb 23 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
Jun 13 Javascript
详解JS中的this、apply、call、bind(经典面试题)
Sep 19 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中file_exists与is_file,is_dir的区别介绍
2012/09/12 PHP
PHP读取文件内容的五种方式
2015/12/28 PHP
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
与jquery serializeArray()一起使用的函数,主要来方便提交表单
2011/01/31 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
JavaScript中对象属性的添加和删除示例
2014/05/12 Javascript
jQuery对指定元素中指定字符串进行替换的方法
2015/03/17 Javascript
js实现Select列表各项上移和下移的方法
2015/08/14 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
AngularJs学习第八篇 过滤器filter创建
2016/06/08 Javascript
js中常用的Math方法总结
2017/01/12 Javascript
ES6中Proxy代理用法实例浅析
2017/04/06 Javascript
Web开发使用Angular实现用户密码强度判别的方法
2017/09/27 Javascript
使用node.js实现微信小程序实时聊天功能
2018/08/13 Javascript
jQuery.validate.js表单验证插件的使用代码详解
2018/10/22 jQuery
bootstrap table实现iview固定列的效果实例代码详解
2019/09/30 Javascript
python 判断一个进程是否存在
2009/04/09 Python
python 读取竖线分隔符的文本方法
2018/12/20 Python
Django 在iframe里跳转顶层url的例子
2019/08/21 Python
Python Django 添加首页尾页上一页下一页代码实例
2019/08/21 Python
Python的形参和实参使用方式
2019/12/24 Python
python面向对象之类属性和类方法案例分析
2019/12/30 Python
selenium学习教程之定位以及切换frame(iframe)
2021/01/04 Python
CSS3教程(10):CSS3 HSL声明设置颜色
2009/04/02 HTML / CSS
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
校园网站的创业计划书范文
2013/12/30 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
第二批党的群众路线教育实践活动总结报告
2014/10/30 职场文书
2014年招生工作总结
2014/11/26 职场文书
表扬信范文
2015/05/04 职场文书
小兵张嘎观后感300字
2015/06/03 职场文书
幼儿园托班开学寄语(2016秋季)
2015/12/03 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
日本十大血腥动漫,那些被禁播的动漫盘点
2022/03/21 日漫