2012-05-06 35 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很快就会成为你最担心的问题:)。恭喜! –