2017-08-07 85 views
-2

我有兩個<select> s,第一個<select>有一堆<option> s但是第二個<select>沒有。我希望在第一個<select>中的每個<option>在第二個<select>中添加不同的選項,最好使用JavaScript/jQuery。選擇的具體選項在下一個選擇中添加選項

例如

<select id="firstSelect"> 
    <option val="1">1</option> 
    <option val="2">2</option> 
    <option val="3">3</option> 
</select> 

<select id="addOptions"> 
<!--Add stuff here!--> 
</select> 

什麼會發生在上面的代碼中選擇選項1將選項A,B和C添加到#adoptions而選項2將增加d和E選項#adoptions,和選項3將增加期權F ,G,H和I到#adoptions

編輯:我已經試過這樣:

function dropdownChecker() { 
switch($('select#weapon').val()) { 
    case "1": 
     $("#dropSpace").append('<option>My option</option>'); 
     break; 
    case "2": 
     $("#dropSpace".append('<option>Second Option</option>')) 
     break; 
} 
$(document).ready(dropdownChecker()); 
+3

這是非常簡單的使用事件偵聽器。你有沒有嘗試過任何東西? – freginold

+0

到目前爲止您嘗試了什麼? – qiAlex

+0

這太寬泛了,特別是因爲你甚至沒有表現出絲毫自己的方法或嘗試。請閱讀[問],然後開始用你的研究。像這樣,https://www.google.com/search?q=javascript+nested+sessions – CBroe

回答

1

您需要創建的要在第二select插入選項的array。在此之後,基於價值從第一個下拉選擇,你必須創建和使用這種簡單的代碼在第二個下拉填充選項:

$.each(optionsArray, function(key, value) { 
    $('#addOptions') 
    .append($("<option></option>") 
     .attr("value", value) 
     .text(value)); 
}); 

下面是完整的例子:

$("#firstSelect").on('change', function() { 
 
    var optionsArray = ''; 
 
    switch ($(this).val()) { 
 
    case "1": 
 
     optionsArray = ['A', 'B', 'C']; 
 
     break; 
 
    case "2": 
 
     optionsArray = ['D', 'E']; 
 
     break; 
 
    case "3": 
 
     optionsArray = ['F', 'G', 'H', 'I']; 
 
     break; 
 
    } 
 
    $('#addOptions').empty(); 
 
    $.each(optionsArray, function(key, value) { 
 
    $('#addOptions') 
 
     .append($("<option></option>") 
 
     .attr("value", value) 
 
     .text(value)); 
 
    }); 
 
}); 
 

 
$(document).ready(function() { 
 
    $("#firstSelect").trigger('change'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="firstSelect"> 
 
    <option val="1">1</option> 
 
    <option val="2">2</option> 
 
    <option val="3">3</option> 
 
</select> 
 

 
<select id="addOptions"> 
 
<!--Add stuff here!--> 
 
</select>

+0

奇怪。當我在網站上運行代碼片段時,它不可避免地會起作用,但是我已經嘗試了很多不同的東西,並且它不會在我的網站上運行。我正在使用Brackets程序,我正在Opera中運行該頁面,不確定這裏發生了什麼。 –