0

我正在使用下面的代码在我的下拉字段中隐藏某些选项。

为什么当我单击第一个单选按钮时,它可以工作,但对其他单选按钮不起作用,然后意识到我需要在单击另一个单选按钮后将下拉菜单重置为其原始选项。

我的应用程序有一个单选按钮组,您单击该组几个单选按钮,然后根据单选按钮的值,运行下面的 IF 语句之一。

使用分离功能后,如何将下拉字段重置为原始内容或完整内容?

我已经尝试过这些,但它们不起作用:

$('#3547').find('option:first').attr('selected', 'selected'); 
document.getElementById('3547').selectedIndex = 0; 
document.getElementById('3547').reset();

代码:

var oldoptions = []; 
 if (typeVal == "Art")
         {      
             $('fieldset#section-417').show();
 thisval = 'Art -';
$("#3547").append(oldoptions);  
    oldoptions = $("#3547 option:not(:contains(" + thisval + "))").detach();
}
 if (typeVal == "Chrome")
         {      
             $('fieldset#section-417').show();
 thisval = 'Chrome -';
$("#3547").append(oldoptions);  
    oldoptions = $("#3547 option:not(:contains(" + thisval + "))").detach();
}
 if (typeVal == "Web")
         {      
             $('fieldset#section-417').show();
 thisval = 'Web -';
$("#3547").append(oldoptions);  
    oldoptions = $("#3547 option:not(:contains(" + thisval + "))").detach();
}

重新澄清所需的功能:

我想在过滤掉一些选项之前恢复原来在下拉列表中的所有选项,因此例如:加载时,下拉列表包含 12 个选项。选中“ART”单选后,下拉菜单中仅显示 4 个项目。例如,当我单击另一个单选按钮“Chrome”时,我希望将原来的 12 个选项恢复到下拉列表中,以便过滤器代码可以再次运行。

4

2 回答 2

1

不确定周围的代码,但从这个片段中,您似乎总是分配一个空数组oldoptions,然后将其附加到选择中(即,您实际上没有附加任何内容)。

于 2012-12-20T14:31:38.623 回答
0

要选择一个选项,您应该使用:

.attr('selected', true)

CSS ID 不应以数字开头。也许那也使您的浏览器感到困惑。

于 2012-12-20T14:28:09.023 回答