jquery UI datepicker仅月份和年份的css定位问题

2024-05-16

我已经实施了这里讨论的解决方案:JQuery 日期时间选择器 - 只需选择月份和年份。 https://stackoverflow.com/questions/4079525/jquery-datetime-picker-need-to-pick-month-and-year-only并且运行良好。我发现的唯一问题是,当日期选择器出现在输入字段上方时(例如,当下面没有足够的空间时),选择器的位置是错误的(太高了,在选择器和输入之间留下了间隙)场地)。

大概这是因为我在选择器中动态隐藏了该月的天数afterjquery 计算它的高度,因此它的定位就好像它仍然是完整的日期选择器一样。有人知道如何解决这个问题吗?


你可以操纵datepicker在显示它之前,但请记住,如果页面上有其他日期选择器,则需要重置它,因为只有 1 个实际的日期选择器<div>.

I have 创建了一个演示 http://jsfiddle.net/dVCYJ/这可能会做你想做的事。希望能帮助到你。

HTML

Normal: <input type="text">
<p>No days: <input type="text" class="noDays"></p>

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));
        }
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jquery UI datepicker仅月份和年份的css定位问题 的相关文章

随机推荐