[英]Setting a particular value in Select Tag generated using ng-options
我每天,每月和每年都有3个下拉菜单。 旁边是一个输入标签,该标签的日期将为“ DD-MM-YYYY”格式。 我要实现的是交换功能,其中单击按钮时,应将输入标签的日期设置为3个选择标签,反之亦然。 对我来说,下拉列表中的日期可以正确读取并在文本框中设置,但是即使将下拉列表中的日期分配给了下拉模型,也无法选择下拉列表中的日期。
我的HTML看起来像这样
<select class="day" name="bday" ng-model="user.bday" age-validate ng-options="day for day in getNumber(1,31,1)"><option value="">DD</option></select>
<select class="month" name="bmonth" age-validate ng-model="user.bmonth" ng-options="day for day in getNumber(1,12,1)"><option value="">MM</option></select>
<select class="year" name="byear" age-validate ng-model="user.byear" ng-options="day for day in getNumber(2014,100,-1)"><option value="">YYYY</option></select>
<input ng-model="social.bdob" readonly="" type="text" />
<span class="toggle" ng-click="swapDOB('bday','bmonth','byear','bdob')"></span>
控制器代码为-
$scope.getNumber = function (start, range, order) { // ascending order = 1, descending order = -1
var arr = new Array(range);
for (var i = start, j = 0; range--; i = i + order)
arr[j++] = i;
return arr;
}
$scope.swapDOB = function (pDay, pMonth, pYear, pDob) {
var temp = $scope.social[pDob];
$scope.social[pDob] = $scope.user[pDay] + "-" + $scope.user[pMonth] + "-" + $scope.user[pYear]
//The below logic needs to be changed to some how select the option tag and display the assigned value
$scope.user[pDay]= temp.split("-")[0];
$scope.user[pMonth] = temp.split("-")[1];
$scope.user[pYear] = temp.split("-")[2];
}
您不需要在swap()
传递字符串。 这就是我将建议您的HTML的更改
<span class="toggle" ng-click="swapDOB()"></span>
我想您有一种区分何时在实现中设置选择输入或文本框的方法,因为在某些时候,其中一个输入可能未定义(或NaN)。
要为选择输入中的文本输入设置模型,可以使用
$scope.social.blob = $scope.user.bday + "-" + $scope.user.bmonth + "-" + $scope.user.byear;
并设置文本输入中的选择输入
var temp = $scope.social.blob.split("-");
$scope.user.bday= parseInt(temp[0]);
$scope.user.bmonth = parseInt(temp[1]);
$scope.user.byear = parseInt(temp[2]);
这是一个小提琴来演示这些。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.