如何解决jQuery datepicker验证问题
我正在尝试配置日期选择器,以使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 举报,一经查实,本站将立刻删除。