1

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

用于实例化日期选择器的代码是:

$(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 处理程序,这样当您单击页面上远离日期选择器的任何位置时,它会按预期关闭,但如果您单击完成按钮,它实际上并没有关闭日期选择器。

4

2 回答 2

0

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

于 2012-10-01T15:50:39.537 回答
0

我会说这是问题所在:

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

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

于 2012-10-01T18:25:26.077 回答