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