我有几个多选框,每个框可能有重复的选项。我需要它们才能工作,这样如果我在一个框中选择一个选项,其他框中会出现相同的选项,它也会被选中。我也需要它,以便如果我在另一个框中选择另一个选项,并且有重复项,那么它们也会被选中而不会丢失先前的选择。
例如,框 A 有 [a,b,c,d] ,框 B 有 [a,q ,w,e] ,框 C 有 [d,x,c,v] 。如果我选择 A.a , B.a 也会被选中。如果我选择 C.d , A.d 也会被选中。
任何提示都将不胜感激。
答案 0 :(得分:0)
我创建了一个小型演示......看看它是否符合您的要求
<!DOCTYPE html>
<html lang="en-US">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<select ng-model="selected1" ng-options="x for x in option1" ng-change ="fireEvent1(selected1)">
</select>
<select ng-model="selected2" ng-options="y for y in option2" ng-change ="fireEvent2()">
</select>
<select ng-model="selected3" ng-options="z for z in option3" ng-change ="fireEvent3()">
</select>
</div>
</body>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.option1 = ["a", "b", "c","d"];
$scope.option2 = ["a", "e", "f","g"];
$scope.option3 = ["e", "s", "p","q"];
$scope.fireEvent1 = function(selected1){
for(var i=0;i< $scope.option2.length; i++){
if($scope.option2[i] == selected1){
$scope.selected2 = $scope.option2[0];
}
}
}
});
</script>
</html>