不确定我是否应该就此开始一个新问题,这与我的其他帖子有点不同。我有代码在用户单击日期字段时显示日期选择器。然后,检查验证部分的4位数年份。 datepicker允许手动输入年份,以及从datepicker中选择,因为它们有时会进入未来几年,并且不想滚动历年。
如果日期的年份不是4位数,则会显示错误消息。但是,如果他们输入2位数年份,他们会用鼠标单击制表符或下一个字段,所以它显示错误消息并将它们带到下一个字段,即使年份无效。有没有办法将焦点返回到无效字段,如果它们有标签或鼠标?有人能告诉我我的代码有什么问题吗?我花了好几个小时和几个小时就可以使用一点方向。
$(function() {
$('.datepicker2').datepicker()
.on('changeDate', function(ev) {
$('.datepicker2').datepicker('hide');
});
$('.datepicker2').on('keydown', function(e) {
var keyCode = e.keyCode || e.which;
if(keyCode == 9) {
$('.datepicker2').datepicker('hide');
}
});
ForceDatePickerFormat();
});
function ForceDatePickerFormat() {
$(".datepicker2").on("blur", function(e) {
var date, day, month, newYear, value, year;
value = e.target.value;
if(value.search(/(.*)\/(.*)\/(.*)/) !== -1) {
date = e.target.value.split("/");
month = date[0];
day = date[1];
year = date[2];
if(year === "") {
year = "0";
}
if(year.length < 4 || year.length > 4) {
alert("Date year must be 4 digits");
}
}
});
}