2016-08-18 44 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

相關問題