我有一个jquery日期选择器,其中只有某些日期可以在日历中分段。按钮栏上今日按钮的功能已被覆盖,以填充今天在该字段中的日期。现在我尝试禁用按钮栏上的今日按钮,如果今天不是用户选择的有效日期。我试图通过更改ui-datepicker-current类来包含ui-state-disabled而不是ui-state-default来做到这一点。我似乎无法改变课程。我试过在beforeShow中添加逻辑:
$(document).ready( function() {
$( ".MyForm-date" ).datepicker( {
changeYear: true,
dateFormat: "dd M yy",
yearRange: "-20:+10",
showButtonPanel: true,
beforeShow : function( input, instance ) {
instance.dpDiv.find(".ui-datepicker-current").removeClass("ui-state-default").addClass("ui-state-disabled");
return initGoodReportDates( input, instance ); },
onChangeMonthYear : function( year, month, instance ) { return refreshGoodReportDates(year, month, instance); },
beforeShowDay : function( date ) { return isGoodReportDate( date ); },
onClose : function(){ checkDate( this ); }
});
以及在此块下面添加逻辑:
$(document).ready( function() {
$( ".MyForm-date" ).datepicker( {
changeYear: true,
dateFormat: "dd M yy",
yearRange: "-20:+10",
showButtonPanel: true,
beforeShow : function( input, instance ) {
return initGoodReportDates( input, instance ); },
onChangeMonthYear : function( year, month, instance ) { return refreshGoodReportDates(year, month, instance); },
beforeShowDay : function( date ) { return isGoodReportDate( date ); },
onClose : function(){ checkDate( this ); }
});
$(".MyForm-date").datepicker("widget").find("ui-datepicker-current").removeClass("ui-state-default").addClass("ui-state-disabled");
但是没有更改与ui-datepicker-current按钮关联的类。谁能告诉我如何访问该按钮?
谢谢
答案 0 :(得分:0)
在执行beforeShow之后立即使用超时修改按钮:
$('.foo').datepicker({
beforeShow: function(input, inst) {
setTimeout(function() {
//...
}, 0);
}
})
参见示例here
您还必须处理onChangeMonthYear
事件。