0

我的要求是获取选定选项并更新div。我在下面的代码中模拟了我的需求。如何将选择选项标签字段的值或选定文本传递给函数参数

我应该让用户只选择startDate和endDate之间的月份结束(我已经在下面的代码中完成了这部分)。但我无法更新所选日期。我只能访问“不是”标签或文本中的“值”属性。

http://jsfiddle.net/priyaa2002/xpcbounr/3/

<div ng-app="myApp"> 
    <div ng-controller="DateCtrl"> 
     <div class="edit__table__field"><p>{{myEnrollment.coverageEndDate}}</p></div> 
     <select ng-model="myEnrollment.coverageEndDate" ng-options="value as coverageEndDate for (value, coverageEndDate) in 
     terminationDates" 
     ng-change="newTerminationDate(myEnrollment.coverageEndDate)" > 
       <option value="">Select your new Termination Date</option> 
     </select> 
    </div> 
</div> 

JS

angular.module('myApp', []) 
    .controller('DateCtrl', function($scope){ 
    $scope.myEnrollment = { 
    coverageStartDate: '01/01/2016', 
    coverageEndDate: '06/01/2016' 
    }; 

    var startDate = new Date ($scope.myEnrollment.coverageStartDate); 
    var endDate = new Date ($scope.myEnrollment.coverageEndDate); 

    var startMonth = startDate.getMonth(); 
    var endMonth = endDate.getMonth(); 
    var year = endDate.getFullYear(); 

    function convertDate(date) { 
    var parts = date.toString().split(" "); 
    var months = { 
     Jan: "01", 
     Feb: "02", 
     Mar: "03", 
     Apr: "04", 
     May: "05", 
     Jun: "06", 
     Jul: "07", 
     Aug: "08", 
     Sep: "09", 
     Oct: "10", 
     Nov: "11", 
     Dec: "12" 
    }; 
    return months[parts[1]]+"/"+parts[2]+"/"+parts[3]; 
}; 


    var pickDates = endMonth - startMonth; 
$scope.terminationDates = []; 
for (var i=0; i < pickDates; i++){ 
     var lastDay = new Date(year, i + 1, 0); 
     var formatedDate = convertDate(lastDay); 
     $scope.terminationDates.push(formatedDate); 
} 
$scope.newTerminationDate = function(coverageDate) { 
    $scope.myEnrollment.coverageDate = "hello"; 
} 

}); 
+0

您选择选项的绑定数组中不包含传递给您的ng模型的'06/01/2016'。这就是为什么没有选择默认情况下 –

+0

这是你的数组包含[“01/31/2016”,“02/29/2016”,“03/31/2016”,“04/30/2016”,“05/31/2016“] –

+0

06/01/2016是开始日期。那已经在那里了。用户可以编辑endDate,他们只能在开始日期和结束日期之间选择月末 – dragonfly

回答

2

你可以简单地做:

<select ng-model="myEnrollment.coverageEndDate" ng-options="value as value for value in terminationDates" ng-change="newTerminationDate(myEnrollment.coverageEndDate)" > 
     <option value="">Select your new Termination Date</option> 
</select> 

希望它能帮助!

相关问题