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 相关文章推荐
跨浏览器的设置innerHTML方法
Sep 18 Javascript
jQuery遍历对象、数组、集合实例
Nov 08 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
Jan 23 Javascript
JavaScript如何实现组合列表框中元素移动效果
Mar 01 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
Mar 28 Javascript
JavaScript基础知识点归纳(推荐)
Jul 09 Javascript
微信小程序开发之入门实例教程篇
Mar 07 Javascript
利用babel将es6语法转es5的简单示例
Dec 01 Javascript
Vue中的scoped实现原理及穿透方法
May 15 Javascript
详解vue中多个有顺序要求的异步操作处理
Oct 29 Javascript
微信小程序实现菜单左右联动
May 19 Javascript
vue3获取当前路由地址
Feb 18 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
咖啡界又出新概念,无需咖啡豆的分子咖啡
2021/03/03 咖啡文化
php session 错误
2009/05/21 PHP
PHP中10个不常见却非常有用的函数
2010/03/21 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
2014/06/10 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
JavaScript入门教程(11) js事件处理
2009/01/31 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
2012/03/04 Javascript
js动态设置鼠标事件示例代码
2013/10/30 Javascript
JavaScript中的连字符详解
2013/11/28 Javascript
javascript强制点击广告的方法
2015/02/06 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
nodejs入门教程四:URL相关模块用法分析
2017/04/24 NodeJs
微信小程序实现表单校验功能
2020/03/30 Javascript
ECMAScript6变量的解构赋值实例详解
2017/09/19 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
2019/08/29 Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
2019/09/09 Javascript
jQuery操作动画完整实例分析
2020/01/10 jQuery
three.js 利用uv和ThreeBSP制作一个快递柜功能
2020/08/18 Javascript
Python中使用logging模块打印log日志详解
2015/04/05 Python
python生成随机密码或随机字符串的方法
2015/07/03 Python
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
Python实现的十进制小数与二进制小数相互转换功能
2017/10/12 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
Django实现网页分页功能
2019/10/31 Python
解决Python 写文件报错TypeError的问题
2020/10/23 Python
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
国外的一些J2EE面试题一
2012/10/13 面试题
工作中个人的自我评价
2013/12/31 职场文书
大学生家政服务项目创业计划书
2014/01/30 职场文书
花店创业计划书范文
2014/02/07 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
2014最新股权信托合同协议书
2014/11/18 职场文书
vue的项目如何打包上线
2022/04/13 Vue.js