插入日期时动态智能日期掩码

Ret*_*der 6 javascript jquery prototypejs

在键入输入和复制并粘贴到文本框的日期时,是否有一种方法可以在javascript或jQuery中动态检测和更改?

我正在尝试创建一个功能文本框,它有两个数字,如一个月.

由于月份可以是1到12之间的数字,我想强制第一个数字为1或0.

我试图做的诀窍是当文本框首先获得焦点并且用户想要输入数字时,如果该数字是2 - 9我想要零来自动填充第一个点然后但是9英寸第二点.

在我输入任何内容之前,这个日期输入看起来像这样:

__/__/_____
Run Code Online (Sandbox Code Playgroud)

如果我键入"1"

1_/__/_____
Run Code Online (Sandbox Code Playgroud)

如果我键入"2"应该得到

02/__/_____
Run Code Online (Sandbox Code Playgroud)

如果我键入"22"应该得到

02/2_/_____
Run Code Online (Sandbox Code Playgroud)

如果我键入"77"应该得到

07/07/_____
Run Code Online (Sandbox Code Playgroud)

我会对代码的答案或已经执行此操作的工具的链接或上一篇文章的链接非常感兴趣?

最终我想把它戴上蒙面,所以7/7/2011或7/7/11或07/07/2011将一直填写到07/07/2011.在最终的最终版本中,我试图让这一年默认为当前的十年,但每年下降到每10年++ - .

Nor*_*ard 2

为什么不将侦听器附加到文本框的模糊部分,而不是用户的键入。

想想如果您正在输入“1”,突然间,输入开始在您正在执行的操作中添加或删除零,那么用户体验会怎样?

var dayInput = document.getElementById("day-input");
// usually, I'd just use event-listeners, but feel free to refactor
dayInput.onblur = handleDayOrMonth;

function handleDayOrMonth () {
    var el = (this === window) ? event.srcElement : this,
        number_string = el.value;

    // checking that it's an actual number
    if (!isNaN(parseInt(number_string)) {
        if (number_string.length === 1) { el.value = "0" + number_string; }
    }
}
Run Code Online (Sandbox Code Playgroud)

处理年份是一样的,只是你要在年份的开头添加“20”。

请随意使用 jQuery 来实现它。