javascript - 使用单一方法从多个输入字段计算年龄

标签 javascript jquery angularjs

这是我计算年龄的代码。我在 ng-change 中对多个输入使用相同的方法。
但我可以使用单一方法仅为一个输入字段绑定(bind)年龄。< br/>为什么我不使用单一方法根据模型名称绑定(bind)多个输入的结果数据?

var app = angular.module('myApp', [])
app.controller('myController', function($scope) {
   
     $scope.calculateAge = function (fieldName,value) {debugger
        var birthDay =value;
        var DOB = new Date(birthDay);
        var today = new Date();
        var age = today.getTime() - DOB.getTime();
        age = Math.floor(age / (1000 * 60 * 60 * 24 * 365.25));
       
        fieldName=age;
        //$scope.data1.age=age;
    }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myController" ng-init="init()">
<div>
    <input type="date" ng-model="data1.dob" ng-change="calculateAge(data1.age,data1.dob)"/>
    <input type="text" ng-model="data1.age"/>
</div>
<div>
    <input type="date" ng-model="data2.dob" ng-change="calculateAge(data2.age,data2.dob)"/>
    <input type="text" ng-model="data2.age"/>
    </div>
    
</div>

我知道我可以通过传递输入 ID 来完成。但我正在尝试使用它的型号名称。

最佳答案

您必须在方法中传递数据的引用并对其进行修改。

var app = angular.module('myApp', [])
app.controller('myController', function($scope) {
   
     $scope.calculateAge = function (data) {debugger
        var birthDay = data.dob;
        var DOB = new Date(birthDay);
        var today = new Date();
        var age = today.getTime() - DOB.getTime();
        age = Math.floor(age / (1000 * 60 * 60 * 24 * 365.25));
        data.age = age;
    }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myController" ng-init="init()">
<div>
    <input type="date" ng-model="data1.dob" ng-change="calculateAge(data1)"/>
    <input type="text" ng-model="data1.age"/>
</div>
<div>
    <input type="date" ng-model="data2.dob" ng-change="calculateAge(data2)"/>
    <input type="text" ng-model="data2.age"/>
    </div>
    
</div>

关于javascript - 使用单一方法从多个输入字段计算年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47829919/

相关文章:

javascript - 无法使用 $httpBackend 测试 POST $http 请求

asp.net - .NET Web API 2 OWIN 承载 token 身份验证

Javascript - 如何获取数组中的第一个元素?

javascript - 图片库问题 jquery

javascript - 如何在javascript中转换日期?

javascript - 使用 jQuery .append 时,子级的父级不会得到更新

javascript - 输入框中的向上/向下箭头不执行任何操作

jquery - 如何使用 JQuery DataTables 根据每个单元格中值的子字符串对列进行排序

javascript - 带有选择器的 jQuery .remove() 不起作用

javascript - 如何更改 Angular Js 或 Jquery 中的日期格式?