2012-09-05 403 views
1

好的,我會盡我所能解釋這一點。我有一個顯示在多選元素中的公司部門列表。每個員工都可以連接到其中幾個部門。 我從我們的數據庫中獲取這些數據。當我選擇其中一個部門時,該部門的員工列表顯示在另一個多選元素中。當我選擇多個部門時,應顯示這些部門的員工。這就是問題所在。我只能讓它與選定的其中一個部門合作。根據其他選擇中的選項填充多個選擇

我想要確保所選部門的所有員工都顯示在多選部分中,並且如果一個員工屬於多個部門,他只會顯示一次。

希望有人能指出我正確的方向。我試着把我的代碼燒掉,所以這是硬編碼版本,沒有從數據庫中獲取東西。

而是張貼在這裏的代碼,我做了一個jsFiddle

回答

2

讓我們增加一個循環,如果從句的代碼。此外,我們將使用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/

+0

這是真棒!非常感謝。是否有可能檢查同名是否出現多次,如果出現則不將它添加到第二次選擇? – pshoeg

+1

我通過Vision更新了代碼以消除重複值。演示http://jsfiddle.net/Kw5Km/3/ –

+1

@pshoeg這是另一個版本,可以完成這項工作:http://jsfiddle.net/Kw5Km/4/。注意,我已經稍微改變了'selOptions'變量。 – VisioN

相關問題