javascript - 如何从下拉列表中删除除从另一个下拉列表中选择的值之外的所有值

标签 javascript jquery angularjs

我有三个下拉菜单:-

    <select clas="col-md-3" ng-model="a.userList" ng-change="selectValues(a.userList)">
        <option>AX</option>
        <option>AF</option>
        <option>AM</option>
        <option>BX</option>
        <option>BF</option>
        <option>BM</option>
        <option>CX</option>
        <option>CF</option>
        <option>CM</option>
        <option>DX</option>
        <option>DF</option>
        <option>DM</option>
</select>
<select clas="col-md-3" ng-model="a.userCode">
        <option>A</option>
        <option>B</option>
        <option>C</option>
        <option>D</option>
</select>
<select clas="col-md-3" ng-model="a.userId">
        <option>X</option>
        <option>F</option>
        <option>M</option>
</select>

我想要的是,当用户选择 AX 时,然后从其他两个下拉列表中分别选择 A 和 X,并从这两个下拉列表中删除所有其他值。

我的指令代码:-

               scope.selectValues = function(userList){
                    switch(userList){
                        case "AX" : scope.a.userCode = "A";
                                    scope.a.userId = "X";
                                    break;
                        case "AF" : scope.a.userCode = "A";
                                    scope.a.userId = "F";
                                    break;
                        case "AM" : scope.a.userCode = "A";
                                    scope.a.userId = "M";
                                    break;
                    };

                };

在上面的代码中,我可以选择我想要选择的特定值,但无法从两个下拉列表中删除所有其他值。谁能告诉我如何从下拉列表中删除值。

最佳答案

你应该把你的选择放在范围内!

JS

scope.userList = ["AX","AF", "AM", "BX", "BF"];
//Obviously put all of your options in this array also for the other selects
scope.userCode = [....];
scope.userId = [....];

HTML

ng-options is what you need

 <select class="col-md-3" ng-model="a.userList"
     ng-options="option for option in topUserList track by $index"
     ng-change="selectValues(a.userList)"></select>

JS

 scope.selectValues = function(userList){
        scope.a.userCode = userList.charAt(0);
        scope.a.userId = userList.charAt(1);
        scope.userCode = [scope.a.userCode];
        scope.userId = [scope.a.userId];

 };

关于javascript - 如何从下拉列表中删除除从另一个下拉列表中选择的值之外的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44862472/

相关文章:

javascript - 显示和隐藏列表项

javascript - Angularjs 中的 Accordion

angularjs - 有没有更清晰的名称来描述 AngularJS 中的数组语法

javascript - 无法从 Modal 元素获取 $file,Angular JS

javascript - 在状态更改之前调用我的函数

javascript - 如何在 Vue3 中使用 Composition API 获取 $refs?

javascript - console.log打印两次并且map在reactjs/mobx项目中不起作用

javascript - Reactjs,具有不同背景颜色的表格单元格

javascript - 我可以从 javascript 或 jquery 调用在 php 中创建的函数吗?如何?

javascript - 使 Javascript 正则表达式不区分大小写