选择的具体选项在下一个选择中添加选项
问题描述:
我有两个<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());
答
您需要创建的要在第二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中运行该页面,不确定这里发生了什么。 –
这是非常简单的使用事件侦听器。你有没有尝试过任何东西? – freginold
到目前为止您尝试了什么? – qiAlex
这太宽泛了,特别是因为你甚至没有表现出丝毫自己的方法或尝试。请阅读[问],然后开始用你的研究。像这样,https://www.google.com/search?q=javascript+nested+sessions – CBroe