繁体   English   中英

在使用ng-options生成的Select Tag中设置特定值

[英]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.

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