jquery UI datepicker月和年只有css定位问题

我已经实现了这里讨论的解决方案: JQuery Datetime选择器 – 只需选择月份和年份。 它运作良好。 我发现的唯一问题是,当日期选择器出现在输入字段上方时(例如,当下面没有足够的空间时),选择器的位置是错误的(它太高,在选择器和输入之间留下间隙)领域)。

据推测,这是因为我 jquery计算其高度动态隐藏了月中的日期,因此它被定位为好像它仍然是完整的datepicker。 任何人有任何想法如何解决这个问题?

您可以在显示之前操纵datepicker ,但是如果页面上有其他日期选择器,则需要重置它,因为只有1个实际的datepicker

创建了一个可能做你想要的演示 。 希望能帮助到你。

HTML

 Normal:  

No days:

CSS

 p { position:absolute; bottom:5px; } div.noDays table { display:none; } 

JavaScript (需要jQuery和jQueryUI)

 $('input').datepicker({ showButtonPanel: true, changeMonth: true, changeYear: true, dateFormat:'MM yy', beforeShow: function(input, inst) { if ($(input).hasClass('noDays')) { $('#ui-datepicker-div').addClass('noDays'); } else { $('#ui-datepicker-div').removeClass('noDays'); $(this).datepicker('option', 'dateFormat', 'yy-mm-dd'); } }, onClose: function(dateText, inst) { if ($('#ui-datepicker-div').hasClass('noDays')) { 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)); } } });