我们正在为我们的项目使用 Angular js。以及我们通过 Angular js 处理的所有验证。
我们能够验证除下拉框之外的所有文本字段。
我们有三个用于日期字段的下拉框(dd mm yyyy)。现在我有两个问题...
我如何从这三个下拉列表中获取值以及如何形成日期。
然后,我想验证那个日期(如果年龄大于 50 则设置错误标志)。我如何使用Angular js来做到这一点?如果用户选择超过 50 岁,我想将表单设置为无效。
请建议我这样做?我对 Angular js 完全陌生。
我们正在为我们的项目使用 Angular js。以及我们通过 Angular js 处理的所有验证。
我们能够验证除下拉框之外的所有文本字段。
我们有三个用于日期字段的下拉框(dd mm yyyy)。现在我有两个问题...
我如何从这三个下拉列表中获取值以及如何形成日期。
然后,我想验证那个日期(如果年龄大于 50 则设置错误标志)。我如何使用Angular js来做到这一点?如果用户选择超过 50 岁,我想将表单设置为无效。
请建议我这样做?我对 Angular js 完全陌生。
我没有您提供的任何代码来作为答案的基础,但这里有一个函数可以帮助您识别正确的年龄:
$scope.dateDiff = function(birthMonth, birthDay, birthYear) {
var todayDate = new Date(),
todayYear = todayDate.getFullYear(),
todayMonth = todayDate.getMonth(),
todayDay = todayDate.getDate(),
age = todayYear - birthYear;
if (todayMonth < birthMonth - 1)
{
age--;
}
if (birthMonth - 1 === todayMonth && todayDay < birthDay)
{
age--;
}
return age;
};
$scope.dateDiff(8,15,1963); // return as 50 as birthday has passed
$scope.dateDiff(9,15,1963); // return as 49 as birthday has not yet happened
在您的 HTML 中,您可以使用它ng-options
来允许用户从下拉列表中选择日期。
Day <select ng-model="selectedDay" ng-options="day as day.date for day in days"></select>
由于您是 Angular 的新手,请确保您花时间了解此代码的工作原理。ng-options
起初可能看起来有点混乱,但是当你开始理解 Angular 原理时,它应该不是问题。