问题描述
我正在尝试配置日期选择器,以使jQuery datepicker的“ beforeShowDay”功能禁用leap日(2月29日)。
当我尝试通过在beforeShowDay下放置断点来在Firefox中调试时,我确实看到它根据选择的日期正确返回true或false。但是,在用户界面上启用了leap日,并且没有可用的工具提示。
要注意的另一件事是,仅format
属性应用于控件,minDate
和maxDate
无效。因此,如果我将格式从mm/dd/yyyy
更改为yyyy-mm-dd
,则会生效,但是设置日期范围将无效。
CSHTML
<div class="abc">
@Html.TextBoxFor(x => x.StartDate,new { @class = "form-control quote-textBox",id="QuoteEffectiveDate"})
</div>
JS
$("#QuoteEffectiveDate").datepicker({
minDate: -90,maxDate: 90,format: "mm/dd/yyyy",beforeShowDay: function (date) {
const febIndex = 1;
const day29Index = 29;
var month = date.getMonth();
var day = date.getDate();
var dateEnabled = !(month === febIndex && day === day29Index);
return [dateEnabled,"","Leap Year Day not available"];
}
});
更新:
似乎我们的代码中使用的日期选择器为Datepicker for bootstrap。本文档中定义的所有选项/方法/事件似乎都可以使用。
例如我没有使用minDate
和maxDate
,而是将它们替换为startDate
和endDate
,现在可以使用了。我还注意到他们的文档没有引用beforeShowDay
,因此它可能无法正常工作?让我感到困惑的是,代码仍然在beforeShowDay
断点处停止。可能是此datepicker派生(基于)jQuery UI datepicker吗?有更多研究在等待。
$('#QuoteEffectiveDate.datepicker').datepicker({
startDate: "-90d",endDate: "+90d",autoclose: true,todayHighlight: true,format: "mm/dd/yyyy"
}).on("changeDate",function (e) {
$("#QuoteEffectiveDate.datepicker").valid();
});
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)