2012-05-06 34 views
0

這屬於我昨天的問題,完全通過@iambriansreed回答了here重寫select選項值以排除特定數組段

爲了讓它更進一步,我的大腦被短路了。此外,jquery API網站已關閉。

我有兩個選擇框;第二個選項中的某些選項會根據第一個選項被刪除。每個選擇框的選項值都是數組。

我現在需要做的是更改第二個選擇框的值,以便刪除與第一個不匹配的任何數組段。我一整天都在這裏,它扭曲了我的頭。 So, in this fiddle,如果「室內樂」在#selectbox1被選中,#selectbox2的選項室內樂5的值應更改爲

<option value="620069,1547340">Chamber Music 5</option>, 

因爲其他值(328874)是不是原來的陣列中的比賽。可能?笨重?我已經在比較數組了,所以已經獲得了不匹配。

+0

確保您的HTML是正確的。我不知道你想要做什麼,但是你的html標籤「室內樂(6)」,而它只有5種選擇,因爲「室內樂5」有3個值 - 包括「328874」這在'Orchestral 1'上重複。 –

+0

謝謝你。爲了澄清,你應該忽略這些標籤;正確的數據將從數據庫中提取。而且會有重複 - 對於其中一些選項的多重價值。所以發佈到那個小提琴上的所有東西都在工作 - 我只是不知道如何從數組中刪除單個不匹配的片段,然後重寫選項以反映新的數組。雖然謝謝! – dilettante

回答

1

我不太知道我理解的問題,特別是「#selectbox2的選項室內樂5應更改爲商會的音樂5值」部分。我所假設的是,您想要在第二個選擇框中更改選項的值,具體取決於第一個選擇框中的選定值。

像這樣的工作:http://jsfiddle.net/3VfU4/3/

// check each value 
var values = this.value.split(','); 
var new_values = []; 
var result = true; 

for(i in values) { 
    if($.inArray(values[i], selected) > -1) { 
     result = false; 
     new_values.push(values[i]); 
    } 
} 

this.value = new_values.join(','); 

return result; 
+0

這是完美的。對不起,我上面有一個不好的粘貼工作。編輯問題以便其他人可以理解它。感謝你的好口譯(我已經懷孕9個月了,我的大腦已經出來了),還有更好的工作來解決這個問題。 – dilettante

+0

那麼通過事情的聲音JavaScript很快就會成爲你最擔心的問題:)。恭喜! –