更新时间:2023-01-29 09:31:47
您的逻辑颠倒了第一位,你必须从startDate构造一个新的日期,以比较今天的日期。另外,您将curDate设置为范围, $ scope.curDate = new Date()
,但是您将它引用为 curDate
没有 $ scope
所以没有定义。最后,您还需要将 stateDate
和 endDate
转换为日期。否则你只是比较字符串。
$ scope.checkErr = function(startDate,endDate){
$ scope .errMessage ='';
var curDate = new Date();
if(new Date(startDate)> new Date(endDate)){
$ scope.errMessage ='结束日期应大于开始日期';
返回false;
}
if(new Date(startDate)< curDate){
$ scope.errMessage ='开始日期不应该在今天之前。
返回false;
}
};
工作示例: http://jsfiddle.net/peceLm14/
I am completely New to Angularjs and trying to validate 2 scenarios. I have 2 text boxes one with start date and the other with end date. I am checking
I tried the below code which did not work. Any suggestions please.
Html Code
<label for="endDate" class="control-label">Start Date:</label>
<div>
<input type="text" class="form-control"
id="startDate" ng-model="startDate" />
</div>
<label for="text" class="control-label">End Date:</label>
<div>
<input type="text" class="form-control"
id="endDate" ng-model="endDate"
ng-change='checkErr(startDate,endDate)' />
</div>
<span>{{errMessage}}</span>
js code
$scope.checkErr = function(startDate,endDate){
$scope.errMessage = '';
$scope.curDate = new Date();
if(startDate < endDate){
$scope.errMessage = 'End Date should be greate than start date';
return false;
}
if(startDate < curDate){
$scope.errMessage = 'Start date should not be before today.';
return false;
}
};
You have the logic reversed on the first bit and you have to construct a new date from startDate to compare to today's date. Also you set curDate to the scope, $scope.curDate = new Date()
but then you were referencing it as curDate
without the $scope
so it was undefined. Lastly, you need to cast stateDate
and endDate
to a date as well. Otherwise you're just comparing strings.
$scope.checkErr = function(startDate,endDate) {
$scope.errMessage = '';
var curDate = new Date();
if(new Date(startDate) > new Date(endDate)){
$scope.errMessage = 'End Date should be greater than start date';
return false;
}
if(new Date(startDate) < curDate){
$scope.errMessage = 'Start date should not be before today.';
return false;
}
};
Working example: http://jsfiddle.net/peceLm14/