当前位置: 首页 > 编程笔记 >

Javascript控制input输入时间格式的方法

郑博厚
2023-03-14
本文向大家介绍Javascript控制input输入时间格式的方法,包括了Javascript控制input输入时间格式的方法的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了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使用正则控制input输入框允许输入的值方法大全,包括了javascript使用正则控制input输入框允许输入的值方法大全的使用技巧和注意事项,需要的朋友参考一下 1、只允许输入数字 2、只允许输入英文字母、数字和下划线(以下二种方法实现) 3、只允许输入英文字母、数字和=@# 4、只允许输入英文大写字母和数字 5、只允许输入汉字 【过滤文字输入】 restri

  • 问题内容: 我在使python打印正确对齐的文本时遇到麻烦。我已经尝试了所有我知道的东西,但是结果还是一样,这很烦人! 这是我在控制台中得到的 这是我的代码。 问题答案: 使用做一个右对齐字段长45个字符。并用于制作左对齐字符串。还可以考虑将线条打印提取为一个功能- 这样一来,您就可以在一个地方轻松更改它。像这样:

  • 本文向大家介绍php输出指定时间以前时间格式的方法,包括了php输出指定时间以前时间格式的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php输出指定时间以前时间格式的方法。分享给大家供大家参考。具体分析如下: 比如说你需要在php中输出3天前,20分钟以前,可以参考下面的代码 希望本文所述对大家的php程序设计有所帮助。

  • 我正在使用iReport 4.6.0和JasperReports Server 4.5.0。我创建了一个报告,希望在其中向MySQL数据库传递日期值。我创建了一个参数并使用了java。util。日期类。在输入控件上,我将其设置为单值类型和日期数据类型。在iReport中运行报告(使用预览)时,系统会提示我选择日期,并使用指定的日期生成报告。将报告部署到JasperReports服务器后,当系统提示

  • 问题内容: 我需要改变从一个日期/时间 2014年8月20日15:30:00 看起来像 二○一四年八月二十○日下午3:30 可以使用javascript的Date对象完成此操作吗? 问题答案: 是的,您可以使用本地javascript Date() 对象 及其方法。 例如,您可以创建一个类似以下的函数: 并显示上午/下午和正确的时间。 请记住使用 getFullYear() 方法,而不要使用get

  • 我试图使用LSTM模型对多元时间序列数据进行二分类。我在一天中收集了大约100天的7个属性(即100个大小[9000,7]的数组)。这些数组中的每一个都具有1或0的单一分类状态。 考虑到我对Keras和机器学习一般来说都是新手,我开始尝试建立尽可能简单的模型,但当我尝试训练他们时,我在输入形状方面不断出错。例如,我的第一层: 对于float64类型的X_列,大小为(100L、9000L、7L),我

  • 因此,我试图使用SimpleDateFormat获取用户输入,但我不断得到错误,线程“main”java.lang.IllegalArgumentException:无法将给定对象格式化为日期 不确定如何让字符串接受信息并转换它,或者是否可以这样做。任何能引导我走向正确方向的评论都将不胜感激。

  • Desktop Note: Keyboard, joystick and gamepad input works only on the desktop version of Unity. 注意:键盘,操纵杆和游戏手柄输入仅工作于Unity桌面版本。 Unity supports keyboard, joystick and gamepad input. Unity支持,键盘,操纵杆和游戏手柄输入