我有两个具有相同选项的选择下拉菜单。第一个下拉默认选择选项应为"公共地址"第二个下拉默认选择选项应为"添加地址"。
我应该允许输入" Public Address / Worker Address"只有一次。所以我需要隐藏" Public Address"第二次下拉页面加载时的选项。并允许用户选择""公共地址/工人地址"从下拉列表中只选择一次。
在此处分享Plunker链接:http://plnkr.co/edit/9G7BCyK37CNf6RWjU9Cz?p=preview
Please refer Plunker link
感谢您的帮助。
答案 0 :(得分:1)
我建议您依靠Angular
执行此操作而忘记直接使用jQuery
,因为它不是必需的。
您可以做的是拥有所有选项的主列表,并为选择维护两个单独的列表。选择更改后,您将重建列表。这里的示例不是基于您的plunker中的代码,而是基于PoC。您应该注意的是,一个选择列表中的选定选项不能成为另一个选项中的选项。
angular.module('app', [])
.controller('controller', function() {
var self = this;
self.mainList = [{
name: 'Public'
}, {
name: 'Private'
}, {
name: 'Protected'
}, {
name: 'Super'
}, {
name: 'Awesome'
}, ];
self.lists = [
[],
[]
];
self.selections = [self.mainList[0], self.mainList[1]];
self.buildList = function(which, other) {
self.lists[which] = [];
self.mainList.forEach(function(e) {
if (e.name !== self.selections[other].name) {
self.lists[which].push(e);
}
});
};
self.buildLists = function() {
self.buildList(0, 1);
self.buildList(1, 0);
};
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="controller as c" ng-init="c.buildLists()">
<label>First</label>
<select ng-model="c.selections[0]" ng-change="c.buildLists()"
ng-options="o.name for o in c.lists[0]">
</select>
<label>Second</label>
<select ng-model="c.selections[1]" ng-change="c.buildLists()"
ng-options="o.name for o in c.lists[1]">
</select>
</div>
&#13;