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 相关文章推荐
Extjs TimeField 显示正常时间格式的代码
Jun 28 Javascript
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
Jan 08 Javascript
Jquery.Form 异步提交表单的简单实例
Mar 03 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
Nov 05 Javascript
javascript跨域请求包装函数与用法示例
Nov 03 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
Dec 02 Javascript
移动端web滚动分页的实现方法
May 05 Javascript
jQuery实现html双向绑定功能示例
Oct 09 jQuery
bootstrap自定义样式之bootstrap实现侧边导航栏功能
Sep 10 Javascript
vue+iview 实现可编辑表格的示例代码
Oct 31 Javascript
基于ajax及jQuery实现局部刷新过程解析
Sep 12 jQuery
如何手写一个简易的 Vuex
Oct 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四舍五入精确小数位及取整
2014/01/14 PHP
自己写了一个php检测文件编码的函数
2014/04/21 PHP
php简单smarty入门程序实例
2015/06/11 PHP
Linux平台PHP5.4设置FPM线程数量的方法
2016/11/09 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
js 获取中文拼音,Select自动匹配字母获取值的代码
2009/09/23 Javascript
jQuery实现id模糊查询的小例子
2013/03/19 Javascript
如何防止回车(enter)键提交表单
2014/05/11 Javascript
JavaScript构造函数详解
2015/12/27 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
2016/12/20 Javascript
Node.js查找当前目录下文件夹实例代码
2017/03/07 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
iview的table组件自带的过滤器实现
2019/07/12 Javascript
laypage.js分页插件使用方法详解
2019/07/27 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
实例讲解python函数式编程
2014/06/09 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
python dataframe 输出结果整行显示的方法
2018/06/14 Python
Django 自定义分页器的实现代码
2019/11/24 Python
python写一个随机点名软件的实例
2019/11/28 Python
django实现后台显示媒体文件
2020/04/07 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
京东港澳售:京东直邮港澳台
2018/01/31 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
毕业生求职简历的自我评价
2013/10/23 职场文书
班组长安全职责
2014/01/05 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
小学数学国培感言
2014/03/10 职场文书
课程设计的心得体会
2014/09/03 职场文书
大学生作弊检讨书
2014/09/11 职场文书
机关作风建设心得体会
2014/10/22 职场文书
Mysql效率优化定位较低sql的两种方式
2021/05/26 MySQL