Datepicker,如果无效日期,请不要失去焦点

时间:2015-11-01 20:32:45

标签: javascript jquery date datepicker

不确定我是否应该就此开始一个新问题,这与我的其他帖子有点不同。我有代码在用户单击日期字段时显示日期选择器。然后,检查验证部分的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");
            }
        }
    });
} 

0 个答案:

没有答案