2016-08-18 72 views
0

我试图根据在另一个下拉列表中选择的选择(selectA)来删除某个下拉列表中的某些选项(selectB)。 不幸的是我的解决方案不工作。有没有人有提示? a132是第一个下拉列表中的选项。如果选择此选项,则应从第二个下拉列表中删除选项b01和b03。 getridofoptions()被称为onChange。 bo2,bo4,b05和b06应该保留在下拉菜单中。如果用户在第一个下拉列表中改变了选择,所有可能的选项应该被重新激活(没有胶水怎么做)。在此之后,getridofoptions应根据新选择删除选项。 示例:如果selectA从a132更改为a133,则应禁用选项b01,b02和b04,并应保留b03,b05,b06。 Tankful任何支持/想法乔治从相关下拉菜单中删除选项ID?

function getridofoptions() { 
 
    if (document.getElementById('a132').selected == True) { 
 
    var x = document.getElementById("b01"); 
 
    x.remove(x.selectedIndex); 
 
    var x = document.getElementById("b02"); 
 
    x.remove(x.selectedIndex); 
 
    var x = document.getElementById("b04"); 
 
    x.remove(x.selectedIndex); 
 
    } else {} 
 
    if (document.getElementById('a133').selected == True) { 
 
    var x = document.getElementById("b01"); 
 
    x.remove(x.selectedIndex); 
 
    var x = document.getElementById("b03"); 
 
    x.remove(x.selectedIndex); 
 
    } else {} 
 
}
<select id="selectA" name="Size" onchange="ReadForm (this.form, false);getridofoptions();"> 
 
    <option value="" id="a00" selected>1. W&auml;hlen Sie Ihre Variante</option> 
 
    <option value="a &szlig alabla" id="a130">wei&szlig; 5,00 EUR</option> 
 
    <option value="b &szlig blabla" id="a131">wei&szlig; 6,00 EUR</option> 
 
    <option value="c &szlig clabla" id="a132">wei&szlig; 7,00 EUR</option> 
 
    <option value="d &szlig dlabla" id="a133">wei&szlig; 8,00 EUR</option> 
 
    <option value="e &szlig eabla" id="a134">wei&szlig; 9,00 EUR</option> 
 
</select> 
 

 
<br> 
 
<select id="selectB" name="Options" onchange="ReadForm (this.form, false);getridofoptions();"> 
 
    <option value="" id="b99" selected>2. W&auml;hlen Sie aus:</option> 
 
    <option value="Test ha" id="b01">Test ha</option> 
 
    <option value="Test ho" id="b02">Test ho</option> 
 
    <option value="Test hk" id="b03">Test hk</option> 
 
    <option value="Test kl" id="b04">Testreihe kl</option> 
 
    <option value="Test km" id="b05">Testreihe km</option> 
 
    <option value="Test lo" id="b06">Testreihe lo</option> 
 
</select>

回答

0

你的代码是正确的,你只需要改变Truetrue。目前您正试图比较boolstring,这永远不会匹配。

function getridofoptions() 
{ 
    if(document.getElementById('a132').selected==true) 
    { 
     var x = document.getElementById("b01"); 
     x.remove(x.selectedIndex); 
     var x = document.getElementById("b02"); 
     x.remove(x.selectedIndex); 
     var x = document.getElementById("b04"); 
     x.remove(x.selectedIndex); 
    } 
    else 
    { 
    } 
    if(document.getElementById('a133').selected==true) 
    { 
     var x = document.getElementById("b01"); 
     x.remove(x.selectedIndex); 
     var x = document.getElementById("b03"); 
     x.remove(x.selectedIndex); 
    } 
    else 
    { 
    } 
} 
+0

或者只是__'if(的document.getElementById(“A132”)。选中)'__等等...... – Rayon

+0

@Rayon是完全相同,但OP似乎是新手,所以只是为了说清楚我写的完整的陈述。 – Mairaj

+0

谢谢你的帮助。你说的对,我是一个新手。删除似乎现在起作用:-)我的问题:我仍然不知道如何让所有的选项恢复生活。用户在再次运行脚本之前在selectA中更改其选择之间的一个步骤,以将选项移除到新选择。 @Leopard:我不知道,你的句子“目前你试图比较bool与字符串永远不会匹配”是关于如果你说代码是好的。你会如此善意解释吗? – Georg