JQuery DatePicker关闭行为

时间:2012-10-01 15:40:44

标签: javascript jquery datepicker

我有一个页面上有一个JQuery日期选择器,用于显示mm / yy格式的日期。我没有编写最初的JQuery而且我对它不是很熟悉所以这可能是一个简单的问题但是当用户点击“完成”按钮时,datepicker会消失一秒然后打开,就像用户点击了一样再次在文本框中。

用于实例化datepicker的代码是:

$(function() {
    $('.datepicker').datepicker({
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'mm/yy',
        onClose: function(dateText, inst) {
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            $(this).datepicker('setDate', new Date(year, month, 1));
        },
        beforeShow: function(input, inst) {
            if ((datestr = $(this).val()).length > 0) {
                year = datestr.substring(datestr.length - 4, datestr.length);
                //month = jQuery.inArray(datestr.substring(0, datestr.length - 5), $(this).datepicker('option', 'monthNames'));
                month = datestr.substring(0, datestr.length - 5);
                $(this).datepicker('option', 'defaultDate', new Date(year, month-1, 1));
                $(this).datepicker('setDate', new Date(year, month-1, 1));
            }
        }
    });
    $("#datepicker").mousedown(function() {
        $('#ui-datepicker-div').toggle();     
    });
});

在谷歌搜索了一段时间后,我添加了mousedown处理程序,这使得当你点击页面上的任何地方远离datepicker然后它按预期关闭但如果你点击完成按钮它实际上并没有关闭日期选择器。

2 个答案:

答案 0 :(得分:0)

它按预期工作。我没有看到我设置的小提琴中的错误http://jsfiddle.net/adrianonantua/ZQTqe/

答案 1 :(得分:0)

我会说这就是问题所在:

$("#datepicker").mousedown(function() {
    $('#ui-datepicker-div').toggle();     
});

它显示/隐藏mousedown上的表单,当您单击日期或完成按钮时,您的日期选择器将自动隐藏。尝试从代码中删除它。