根据其他多个选择中的选项填充多个选择

时间:2012-09-05 12:52:22

标签: javascript jquery select multiple-select

好的,我会尽力解释这个。我有一个显示在多选元素中的公司部门列表。每个员工都可以连接到其中几个部门。 我从我们的数据库中获取这些数据。当我选择其中一个部门时,该部门中的员工列表将显示在另一个多个选择元素中。当我选择多个部门时,应该显示这些部门的员工。这就是问题所在。我只能让它与选定的一个部门合作。

我想确保所选部门的所有员工都显示在多个选择元素中,并且如果一个员工属于多个部门,他只会显示一次。

希望有人可以指出我正确的方向。我试图将代码煮沸,所以这是硬编码版本而没有从数据库中获取内容。

我没有在此处发布代码,而是发布了jsFiddle

1 个答案:

答案 0 :(得分:2)

让我们在代码中添加一个循环和if子句。此外,我们将使用obj.options[k].value代替obj.value

for (k = 0; k < obj.options.length; k++) {                   // <-- add here
    if (obj.options[k].selected) {                           // <-- add here
        for (i = 0; i < selOptions.length; i++) {
            if (obj.options[k].value == selOptions[i][0]) {  // <-- change here
                for (j = 1; j < selOptions[i].length; j++) {
                    oSel2.options[oSel2.options.length] = new Option(
                        selOptions[i][j], selOptions[i][j], false, false);
                }
                i = selOptions.length;
            }
        }
    }
}

DEMO: http://jsfiddle.net/Kw5Km/2/