微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jQuery datepicker验证问题

如何解决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 举报,一经查实,本站将立刻删除。