0

我需要 datepicker 在广播月份,我想出了如何在不编辑代码的情况下做到这一点。到目前为止,它在大多数情况下都有效,但我遇到了问题。

首先,我的解决方法是:
我有showOtherMonths:true, changeOtherMonths:true这将让我在广播月的整个第一周获得。还显示了下个月的第一周,所以这就是我要删除它的方法(不删除星期天结束的一个月的最后一周)

$(function() {
    $(document).bind("click keypress", function(){
        // find "1" listed in outside month and hide the row
        $("table.ui-datepicker-calendar tbody td.ui-datepicker-other-month").filter(function(){
             return $.text([this]) == '1';
        }).closest("tr").hide();
        // remove styling that differentiates outside month
        $(".ui-priority-secondary").removeClass("ui-priority-secondary");
    });
});

在 jsfiddle 中工作

这适用于 Firefox 和 Chrome,但在 IE8(在兼容模式下)中,这只会在第一次打开时修剪最后一行。如果您单击日期选择器中的另一个月份,则必须再次单击输入框或单击日期选择器背景才能触发上面的代码块。

我尝试使用该onChangeMonthYear部分调用相同的代码但没有成功,但据我所知,在 IE 中,此代码在新月份重绘日历之前运行,这意味着它在这个意义上是无用的。

另外,我有changeMonth: true, changeYear: true并且在更改选择菜单时,上面的代码块不会在任何浏览器中运行,我还没有找到解决方法。

如果我能克服这些最后的障碍,那么任何人都可以使用它来显示广播月份,而无需修改 jquery-ui.js,这样他们就可以使用谷歌托管的代码等。

谢谢!

4

0 回答 0