gpt4 book ai didi

javascript - Angularjs 开始日期和结束日期验证

转载 作者:数据小太阳 更新时间:2023-10-29 05:54:29 26 4
gpt4 key购买 nike

我是 Angularjs 的新手,正在尝试验证 2 个场景。我有 2 个文本框,一个是开始日期,另一个是结束日期。我正在检查

  1. 如果开始日期不早于或等于今天,则在用户界面上显示验证错误。应该是今天或今天之后的任何一天。
  2. 如果开始日期晚于结束日期,则在用户界面上显示验证错误。结束日期应晚于开始日期。

我试过下面的代码,但没有用。请提出任何建议。

HTML代码

<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代码

$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;
}

};
  • 两个日期控件的输入类型都是文本。我正在使用 Bootstrap 日期选择器。

最佳答案

您的逻辑在第一位就颠倒了,您必须从 startDate 构造一个新日期以与今天的日期进行比较。您还将 curDate 设置为范围 $scope.curDate = new Date() 但随后您将其引用为 curDate 而没有 $scope所以它是未定义的。最后,您还需要将 stateDateendDate 转换为日期。否则你只是在比较字符串。

$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;
}
};

工作示例:http://jsfiddle.net/peceLm14/

关于javascript - Angularjs 开始日期和结束日期验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31350345/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com