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判断背景图片是否加载成功使用img的width实现
May 29 Javascript
一行命令搞定node.js 版本升级
Jul 20 Javascript
JavaScript基础教程——入门必看篇
May 20 Javascript
浅谈jQuery中事情的动态绑定
Feb 12 Javascript
JavaScript获取URL参数的方法之一
Mar 24 Javascript
基于JavaScript实现的插入排序算法分析
Apr 14 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
Jul 19 Javascript
vue keep-alive请求数据的方法示例
May 16 Javascript
微信公众平台获取access_token的方法步骤
Mar 29 Javascript
亲自动手实现vue日历控件
Jun 26 Javascript
微信小程序判断用户是否需要再次授权获取个人信息
Jul 18 Javascript
JS开发前端团队展示控制器来为成员引流
Aug 14 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
ASP和PHP都是可以删除自身的
2007/04/09 PHP
php json_encode值中大括号与花括号区别
2013/09/30 PHP
php中自定义函数dump查看数组信息类似var_dump
2014/01/27 PHP
初识php MVC
2014/09/10 PHP
php+xml编程之SimpleXML的应用实例
2015/01/24 PHP
PHP 正则表达式小结
2015/02/12 PHP
centos 7.2下搭建LNMP环境教程
2016/11/20 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
2017/03/15 PHP
基于jquery的图片懒加载js
2010/06/30 Javascript
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
JS获取各种浏览器窗口大小的方法
2014/01/14 Javascript
Jquery跳到页面指定位置的方法
2014/05/12 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
基于Javascript实现返回顶部按钮
2016/02/29 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
Node.js pipe实现源码解析
2017/08/12 Javascript
vue异步axios获取的数据渲染到页面的方法
2018/08/09 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
2018/10/19 Javascript
vue跳转页面的几种方法(推荐)
2020/03/26 Javascript
无法使用pip命令安装python第三方库的原因及解决方法
2018/06/12 Python
python pandas库的安装和创建
2019/01/10 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
Python加密模块的hashlib,hmac模块使用解析
2020/01/02 Python
在python中修改.properties文件的操作
2020/04/08 Python
六种酷炫Python运行进度条效果的实现代码
2020/07/17 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
美国椅子和沙发制造商:La-Z-Boy
2020/10/25 全球购物
班长岗位职责
2013/11/10 职场文书
电子信息专业自荐书
2014/02/04 职场文书
网上卖盒饭创业计划书范文
2014/02/07 职场文书
领导班子群众路线与四风问题对照检查材料思想汇报
2014/10/11 职场文书
人身损害赔偿协议书
2016/03/22 职场文书