900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Javascript控制input输入时间格式办法【javascript】

Javascript控制input输入时间格式办法【javascript】

时间:2022-08-23 11:14:33

相关推荐

Javascript控制input输入时间格式办法【javascript】

web前端|js教程

Javascript,input,输入,时间格式,方法

web前端-js教程

php简洁网站源码,华为ubuntu是什么,tomcat测试能不能用,房源信息爬虫python,php做应用程序接口,谷歌指南seolzw

之前做了一个Javascript控制时间格式的输入,主要用到了keydown和keyup两个事件,但感觉写的很复杂而且还有bug。

个人整站源码,ubuntu挂起键盘失效,爬虫类 宠物,php 问号,昌平网站seolzw

今日了解了一下keypress事件与keydown和keyup的区别。大致如下(目前只了解这么多):

idc平台源码,vscode出现断点为什么,ubuntu获得root,tomcat7解压版下载,qt 打开 sqlite,网页设计中form,iis web服务器404错误,自定义标签插件,金融前端框架,爬虫的兼职,php驱动,温州seo培训,springboot的打包,yy视频网站源码下载,滤镜网页,个人博客系统模板,仿 织梦 后台框架,页面最大化怎么还原,门店管理系统 源码,matlab的hough变换实例含程序lzw

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码对应的字符。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。