我在一个angular指令中包装了bootstrap datepicker,并在文本框中使用了它。除验证部分外,一切似乎都可以正常工作。
我已将其设置为接受'mm-yyyy'格式的日期,但它仍允许我覆盖并手动输入'mm-yy'或'mm-somenumber'中的日期。
如何阻止用户以“mm-yyyy”以外的格式输入日期?
这是Plunker link。
要查看此问题,请从datepicker中选择一个日期,然后通过键入“mm-yy”格式的日期并按Tab键覆盖它。你可以看到文本框保留'mm-yy'格式而不是强制'mm-yyyy'格式。
<input type="text" ng-model="date" datepicker/>
app.directive('datepicker', [function () {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attrs, ngModelCtrl) {
element.datepicker({
format: "mm-yyyy",
minViewMode: 1,
//viewMode: "months",
//minViewMode: "months",
orientation: "top left",
autoclose: true,
onSelect: function (date) {
ngModelCtrl.$setViewValue(date);
scope.$apply();
}
});
}
};
}]);
由于
答案 0 :(得分:1)
您可以像这样设置startDate
和endDate
:
element.datepicker({
format: "mm-yyyy",
minViewMode: "months", // or 1
startDate: "01-1000",
endDate: "12-9999",
});
示例Plunker: http://plnkr.co/edit/2jTxvNkWy7AmQgnZ9G0R?p=preview
我认为格式字符串中的yyyy
并不代表4位数字,但它意味着一整年的数字。