Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在使用ng选项生成的Select标记中设置特定值_Javascript_Angularjs_Angularjs Scope - Fatal编程技术网

Javascript 在使用ng选项生成的Select标记中设置特定值

Javascript 在使用ng选项生成的Select标记中设置特定值,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我有3个下拉列表并排为天,月和年。旁边是一个输入标签,其日期格式为“DD-MM-YYYY”。我想要实现的是一个交换功能,在这个功能中,点击按钮,输入标签的日期应该设置为3个选择标签,反之亦然。对我来说,下拉列表中的日期被正确读取并在文本框中设置,但是文本框中的日期在下拉列表中没有被选中,即使它被指定给下拉列表模型 我的HTML看起来像这样 <select class="day" name="bday" ng-model="user.bday" age-validate ng-option

我有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>

您不需要在
swap()
中传递字符串。这就是我将建议对您的HTML进行的更改

<span class="toggle" ng-click="swapDOB()"></span>
和设置从文本输入选择输入

var temp = $scope.social.blob.split("-");
$scope.user.bday= parseInt(temp[0]);
$scope.user.bmonth = parseInt(temp[1]);
$scope.user.byear = parseInt(temp[2]);

下面是一个例子来说明这些。

更新模型实际上并不更新视图。即使在JS中,也要尝试填充这两个字段并尝试交换。只有下拉列表中的数据被交换到输入标签,反之亦然。感谢HTML更正,我将删除参数。我不知道您想同时设置这两个值。我已经更新了fiddle(即删除了条件)。是的,这是对的,所以我犯的错误是没有使用parseInt,这应该是错误的。拆分字符串会得到需要转换为int的字符串数组。
$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]);