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 相关文章推荐
Javascript 判断Flash是否加载完成的代码
Apr 12 Javascript
提交表单时执行func方法实现代码
Mar 17 Javascript
JavaScript动态创建div属性和样式示例代码
Oct 09 Javascript
利用js读取动态网站从服务器端返回的数据
Feb 10 Javascript
js中document.write的那点事
Dec 12 Javascript
Node.js中如何合并两个复杂对象详解
Dec 31 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
Mar 10 Javascript
初识 Vue.js 中的 *.Vue文件
Nov 22 Javascript
jquery树形插件zTree高级使用详解
Aug 16 jQuery
ES6使用新特性Proxy实现的数据绑定功能实例
May 11 Javascript
多个Vue项目部署到服务器的步骤记录
Oct 22 Javascript
JavaScript实例 ODO List分析
Jan 22 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 数组的创建、调用和更新实现代码
2009/03/09 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(八)
2014/06/23 PHP
PHP MVC框架skymvc支持多文件上传
2016/05/26 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
PHP替换Word中变量并导出PDF图片的实现方法
2020/11/26 PHP
用YUI做了个标签浏览效果
2007/02/20 Javascript
JavaScript 无符号右移赋值操作
2009/04/17 Javascript
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
JavaScript 控制字体大小设置的方法
2016/11/23 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
2016/12/27 Javascript
vue2.0实现分页组件的实例代码
2017/06/22 Javascript
vue将对象新增的属性添加到检测序列的方法
2018/02/24 Javascript
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
浅析Vue中拆分视图层代码的5点建议
2019/08/15 Javascript
[00:14]PWL:老朋友Mushi拍VLOG与中国玩家问好
2020/11/04 DOTA
python的迭代器与生成器实例详解
2014/07/16 Python
python插入排序算法实例分析
2015/07/03 Python
Python中常用操作字符串的函数与方法总结
2016/02/04 Python
python实现BackPropagation算法
2017/12/14 Python
Django添加feeds功能的示例
2018/08/07 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
Python字符串格式化常用手段及注意事项
2020/06/17 Python
计算机应用专业应届毕业生中文求职信范文
2013/11/29 职场文书
餐饮主管岗位职责
2013/12/10 职场文书
幼儿园实习自我鉴定
2013/12/15 职场文书
园林资料员岗位职责
2013/12/30 职场文书
家长会演讲稿范文
2014/01/10 职场文书
贸易跟单员英文求职信
2014/04/19 职场文书
质监局领导班子对照检查材料思想汇报
2014/09/27 职场文书
西游记读书笔记
2015/06/25 职场文书
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python