使用javascript在日期字段中自动斜杠以保持永久性
我可以在日期字段中添加自动斜杠。但是当我点击backspace时,我需要反斜杠保持原样使用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) {
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)
});