繁体   English   中英

如何使用Angularjs验证年龄?

[英]How to validate age using Angularjs?

我们正在为我们的项目使用Angular js。 以及我们通过Angular js处理的所有验证。

我们能够验证除下拉框以外的所有文本字段。

我们为日期字段(dd mm yyyy)设置了三个下拉框。 现在我有两个问题...

  1. 我如何从这三个下拉列表中获取值以及如何形成日期。

  2. 然后,我想验证该日期(如果年龄大于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 Principles时,这应该不成问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM