Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript在日期字段中自动斜杠以保持永久性_Javascript_Date_Field - Fatal编程技术网

使用javascript在日期字段中自动斜杠以保持永久性

使用javascript在日期字段中自动斜杠以保持永久性,javascript,date,field,Javascript,Date,Field,我可以在日期字段中添加自动斜杠。但是当我点击backspace时,我需要反斜杠保持原样 var keycode = event.which, value = $(current).val(), position1 = 3, position2 = 6; if((value.length === (position1 - 1)) || (value.length === (position2 - 1))){ if (keycode === 8) {

我可以在日期字段中添加自动斜杠。但是当我点击backspace时,我需要反斜杠保持原样

var keycode = event.which,
    value = $(current).val(),
    position1 = 3,
    position2 = 6;
if((value.length === (position1 - 1)) || 
   (value.length === (position2 - 1))){
    if (keycode === 8) {
       value = value + '/';
    }
}
你可以试试这个

更新

试试这个使用HTML5的,你可以从这里试试

更新


试试这个使用HTML5的,何必麻烦呢?只需让用户键入日期。如何处理枯萎光标键?粘贴文本?文本输入顺序错误?为什么要麻烦?只需让用户键入日期。如何处理枯萎光标键?粘贴文本?文本输入顺序错误?谢谢,但我仍然可以删除反斜杠。我希望这是一个永久的斜杠。使用反斜杠时,斜杠不应消失。请注意,这也允许出现无效日期,如00/00/0000和99/99/9999谢谢,但我仍然可以删除反斜杠。我希望这是一个永久的斜杠。使用backspace时,斜杠不应消失。请注意,这也允许使用无效日期,如00/00/0000和99/99/9999
var format = "mm/dd/yyyy";
var match = new RegExp(format
    .replace(/(\w+)\W(\w+)\W(\w+)/, "^\\s*($1)\\W*($2)?\\W*($3)?([0-9]*).*")
    .replace(/m|d|y/g, "\\d"));
var replace = "$1/$2/$3$4"
    .replace(/\//g, format.match(/\W/));

function doFormat(target)
{
    target.value = target.value
        .replace(/(^|\W)(?=\d\W)/g, "$10")   // padding
        .replace(match, replace)             // fields
        .replace(/(\W)+/g, "$1");            // remove repeats
}

$("input[name='birthdate']:first").keyup(function(e) {
   if(!e.ctrlKey && !e.metaKey && (e.keyCode == 32 || e.keyCode > 46))
      doFormat(e.target)
});