按下Tab键时,Datepicker日历不会消失

时间:2015-10-29 10:00:23

标签: javascript datepicker calendar

几天前我问了一个问题,并得到了一些关于日期格式验证的好评。我还没有将该代码放入我的脚本中,因为我需要首先使用datepicker。这是我的问题...我在视图中使用以下代码来使用datepicker来获取一些日期字段:

$(function () {
    $('.datepicker2').datepicker()
    .on('changeDate', function (ev) {
     $('.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");
            }
        }
    });
}

因此,当用户点击某个字段时,这会调出datepicker,然后检查以确保日期为4位数年份。这非常有效,除了:

  1. 按下Tab键时日历不会消失。这是一个问题,因为tab键将光标向下移动到下一个字段,但它仍然被弹出日历框所掩盖!
  2. 验证的代码有效(如果他们输入年份的2位数字,它会给他们一个警报),除非他们先按Tab键然后向下移动到下一个字段。在这种情况下,他们可以单击“确定”并返回到原始字段,日期选择器框不会出现,他们可以在字段中键入他们想要的任何内容而不会出现错误。
  3. 有没有办法在专注于任何datepicker字段时禁用Tab键?或者,当按下Tab键时关闭弹出窗口(没有帮助#2)?

    感谢您的帮助!我花了几个小时,几个小时试图让这个东西正常工作!我已经阅读了网络上存在的datepicker上的所有线程......这些线程都不是我在这里所需要的。

0 个答案:

没有答案