2012-01-20 47 views
2

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

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

以上代码显示了其他月份的日期。但是,我需要显示其他月份的日期为' - '。

对于防爆,

enter image description here

请任何帮助..

回答

3

我找不到任何可以让您控制“其他月份”单元格中显示的文本,但您可以绕过它的方式。

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/

这是相当kludgey臭,但它的工作原理,它应该是非常稳固的,我想不出任何其他方式。

+0

谢谢你..工作很好.. – sathish

2

我检查的jQuery用户界面的DatePicker控件使用的CSS。他们在其他月份的日期使用ui-priority-secondary类。

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

我试了下面,它的工作。

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

希望帮助

UPDATE:

因为我只能用Firebug控制台检查一下,没看到它不会在正确的应用场景时间。 @mu is too short已经指出,并有一个工作解决方案。

+2

问题是,在适当的时间应用,datepicker中的HTML在每次月份更改(包括初始显示)时都会重新构建,因此需要一些技巧来在*之后获取连字符* jQuery-UI完成后HTML。但是+1正确的轨道。 –

+0

好抓!我用萤火虫控制台来检查它。因为它已经应用在已经呈现的日历上,所以我被带走了;)thx –

相关问题