1

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

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

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

我没有在这里发布代码,而是制作了一个jsFiddle

4

1 回答 1

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;
            }
        }
    }
}

演示:http: //jsfiddle.net/Kw5Km/2/

于 2012-09-05T13:02:32.900 回答