【问题标题】:show other months in jquery ui datepicker在 jquery ui datepicker 中显示其他月份
【发布时间】:2012-01-20 06:51:53
【问题描述】:

我需要在我的 jquery ui datepicker 中将其他月份显示为“-”。

$( "#datepicker" ).datepicker({
    showOtherMonths: true
});

上面的代码显示了其他月份的日期。但是,我需要将其他月份的日期显示为“-”。

例如,

请任何人帮助..

【问题讨论】:

    标签: jquery jquery-ui datepicker jquery-ui-datepicker


    【解决方案1】:

    我找不到任何可以让您控制“其他月份”单元格中显示的文本的内容,但您可以自行解决。

    Guganeshan.T 走在正确的轨道上。但棘手的部分是在正确的时间应用更改。 beforeShowonChangeMonthYear 事件在显示新月份之前 触发,并且这些事件有之后 版本。对于这种情况,我通常的技巧是使用setTimeout,超时为零,这可以有效地让您排队等待浏览器再次获得控制权并且在当前 JavaScript 块完成运行之后调用的函数。所以这样的事情应该可以解决问题:

    function ickyHyphenKludge(inst) {
        setTimeout(function() {
            inst.dpDiv.find('.ui-datepicker-other-month span.ui-state-default').html('-');
        }, 0);
    }
    
    $("#datepicker").datepicker({
        showOtherMonths: true,
        selectOtherMonths: false,
        beforeShow: function(input, inst) {
            ickyHyphenKludge(inst);
        },
        onChangeMonthYear: function(year, month, inst) {
            ickyHyphenKludge(inst);
        }
    });
    

    演示:http://jsfiddle.net/ambiguous/YKNmV/1/

    这很笨拙而且很臭,但它很管用,它应该很结实,而且我想不出任何其他方法。

    【讨论】:

      【解决方案2】:

      我检查了 jQuery UI 的 DatePicker 控件中使用的 CSS。他们使用 ui-priority-secondary 类来表示其他月份的日期。

      所以您可以做的是,使用 jQuery 定位使用该特定类的元素并将 HTML 替换为 - 并将其居中。

      我尝试了以下方法并且成功了。

      $('.ui-datepicker-calendar .ui-priority-secondary').html('-').css('text-align', 'center')

      希望有帮助

      更新:

      由于我仅使用Firebug 控制台检查了它,因此没有看到它不会在正确的时间应用的场景。 @mu is too short 指出了这一点并有一个可行的解决方案。

      【讨论】:

      • 问题在于在正确的时间应用,日期选择器中的 HTML 会在每次更改月份(包括初始显示)时重新构建,因此需要一些技巧来获取 after 中的连字符 jQuery-UI 是用 HTML 完成的。但是 +1 是因为走在正确的轨道上。
      • 好收获!我使用萤火虫控制台来检查它。由于它被应用在已经渲染的日历上,我被带走了;)谢谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多