jQuery datepicker验证问题

问题描述

我正在尝试配置日期选择器,以使jQuery datepicker的“ beforeShowDay”功能禁用leap日(2月29日)。

当我尝试通过在beforeShowDay下放置断点来在Firefox中调试时,我确实看到它根据选择的日期正确返回true或false。但是,在用户界面上启用了leap日,并且没有可用的工具提示

要注意的另一件事是,仅format属性应用于控件,minDatemaxDate无效。因此,如果我将格式从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。本文档中定义的所有选项/方法/事件似乎都可以使用。

例如我没有使用minDatemaxDate,而是将它们替换为startDateendDate,现在可以使用了。我还注意到他们的文档没有引用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 (将#修改为@)