我需要在今天之前限制最大日期,所以我使用下面的代码:
<div class="datepicker">
@Html.TextBoxFor(m => m.Birthdate, "{0:dd.MM.yyyy}", new { @class = "form-control", @style="max-width: 240px;" })
</div>
<script type="text/javascript">
$(function () {
$('.datepicker input').datepicker({
language: "ru",
autoclose: true,
format: "dd.mm.yyyy",
todayHighlight: true,
maxDate: new Date()
});
});
</script>由于不同浏览器之间存在一些问题,我还使用了一个自定义数据传递器:
jQuery.validator.methods.date = function (value, element) {
var pattern = new RegExp('^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$');
return this.optional(element) || pattern.test(value);
}正如我在标题中所写的那样,对min和max日期的限制不起作用(我也试图设置一个min日期)。我不确定,但可能是由于cutom验证代码造成的。但是我需要怎么改变它呢?
P.S.,如果我的问题太简单,我很抱歉,但我不太了解JS。
发布于 2017-03-31 07:15:58
使用startDate和endDate可以设置
$(function () {
$('.datepicker input').datepicker({
language: "ru",
autoclose: true,
format: "dd.mm.yyyy",
todayHighlight: true,
startDate : new Date('2017-03-10'),
endDate : new Date()
});
});<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/js/bootstrap-datepicker.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/css/bootstrap-datepicker.css" rel="stylesheet"/>
<div class="datepicker">
<input type='text' id='Birthdate'/>
</div>
https://stackoverflow.com/questions/43134536
复制相似问题