【发布时间】:2015-07-02 08:11:33
【问题描述】:
我正在尝试将今天设置为日期输入中的最大日期。 但是每次我在日期选择器中选择今天时,模型值总是未定义。有人遇到过这样的问题吗?
html代码:
<form name="myForm" class="item">
<input type="date" ng-model="date" max="{{maxDateStr}}" name="dateInput">
<p> date: {{date | date:'yyyy-MM-dd'}}</p>
<p>myForm.$valid : {{myForm.$valid}}</p>
<p>myForm.dateInput.$error.max : {{myForm.dateInput.$error.max}}</p>
</form>
js代码:
angular.module('angularApp',[])
.controller('MyCtrl', function($scope, $filter) {
$scope.maxDateStr = $filter('date')(new Date(), 'yyyy-MM-dd');
$scope.date = new Date();
});
我在codepen上的代码
after debug in chrome, i found that when choose the max date, the value pass to NgModelController.$parsers had time e.g. 2015 年 7 月 2 日星期四 16:54:00 GMT+0800 (CST)。当运行 max 验证器时,它返回 false,
角度最大验证器代码:
var maxVal;
ctrl.$validators.max = function(value) {
return !isValidDate(value) || isUndefined(maxVal) || parseDate(value) <= maxVal;
};
因为maxVal 的值为Thu Jul 02 2015 00:00:00,所以它返回false。
【问题讨论】:
-
您的 codepen 没有打开。并且,试着简单地把有问题的代码本身。
-
编辑您的链接 -> 删除开始时的空格并在 http 之后添加:
-
看到你的代码...它对我来说工作正常...确切的问题是什么?
-
对此我感到非常抱歉。链接已更改,现在可以打开
-
@RohitKumar 但是当我选择最大日期时,模型值未定义
标签: angularjs