我正在尝试为输入日期字段添加功能,以便在用户输入数字时自动添加斜杠“/”。

因此,假设我有以下html:

<input type="text" id="fooDate" />

并假设我有以下javascript:
var dateField = document.getElementById("fooDate");
dateField.onkeyup = bar;
bar应该是什么?

到目前为止,最好的google结果是:
function bar(evt)
{
    var v = this.value;
    if (v.match(/^\d{2}$/) !== null) {
        this.value = v + '/';
    } else if (v.match(/^\d{2}\/\d{2}$/) !== null) {
        this.value = v + '/';
    }

}

谢谢!

另外-我知道您输入时输入斜线很烂。用它滚:p

最佳答案

更新/编辑:显然,当今具有最广泛的HTML5支持的最简单的解决方案是使用<input type="date" name="yourName">

对于那些提示它不能退格或粘贴的人,我修改了原件:

//Put our input DOM element into a jQuery Object
var $jqDate = jQuery('input[name="jqueryDate"]');

//Bind keyup/keydown to the input
$jqDate.bind('keyup','keydown', function(e){

  //To accomdate for backspacing, we detect which key was pressed - if backspace, do nothing:
    if(e.which !== 8) {
        var numChars = $jqDate.val().length;
        if(numChars === 2 || numChars === 5){
            var thisVal = $jqDate.val();
            thisVal += '/';
            $jqDate.val(thisVal);
        }
  }
});

`

工作 fiddle :https://jsfiddle.net/ChrisCoray/hLkjhsce/

10-07 14:29