标题可能有点令人困惑,但在这里我们详细介绍。 所以我有3个下拉列表。第二个'select'元素中的选项必须是唯一的,基于第一个'select'选择选项中的选定选项。 与第三个相同的是,它应该具有基于第二个“选择”选择选项中所选选项的唯一选项。
据我所知,我可以根据我在第一个“选择”中选择的内容更改第二个“选择”选项,但是当我更改第二个“选择”选项时,第三个“选择”选项根本不改变。 这是HTML:
<select id="item1">
<option value="0">1 item</option>
<option value="1">2 item</option>
<option value="2">3 item</option>
</select>
<select id="item2">
<option value="">-- select one -- </option>
</select>
<select id="item3">
<option> -- select another one --</option>
</select>
这是jquery:
$(document).ready(function() {
$("#item1, #item2").change(function() {
var value = $(this).val();
$("#item2").html(options[value]);
var value1 =$("#item2").val();
$("item3").html(options[value]);
});
var options = [
"<option value='test'>item1: test 1</option><option value='test2'>item1: test 2</option>",
"<option value='test'>item2: test 1</option><option value='test2'>item2: test 2</option>",
"<option value='test'>item3: test 1</option><option value='test2'>item3: test 2</option>"
];
var options1 = ["<option value='test'>item33313: test 3332233</option>
<option value='test3'>item333: test 33333</option>","<option
value='test'>item33313: tesdadadadadat 3332233</option><option
value='test3'>item333: test 33333</option>","<option
value='test'>itlolooloem33313: test 3332233</option><option
value='test3'>item333: ltoltrolltest 33333</option>"];
});
这是JSfiddle:
http://jsfiddle.net/2hyda4b1/
任何帮助/提示都很受欢迎!
答案 0 :(得分:0)
您的代码存在一些问题。
首先,
$("item3").html(options[value]);
应更改为:
$("#item3").html(options1[value]);
接下来,第二个下拉列表的选项列表:
var options = [
"<option value='test'>item1: test 1</option><option value='test2'>item1: test 2</option>",
"<option value='test'>item2: test 1</option><option value='test2'>item2: test 2</option>",
"<option value='test'>item3: test 1</option><option value='test2'>item3: test 2</option>"
];
应该具有&#39;值&#39;属性更新如:
var options = [
"<option value='0'>item1: test 1</option><option value='test2'>item1: test 2</option>",
"<option value='1'>item2: test 1</option><option value='test2'>item2: test 2</option>",
"<option value='2'>item3: test 1</option><option value='test2'>item3: test 2</option>"
];
我已更新您的jsFiddle http://jsfiddle.net/2hyda4b1/2/
<强>更新强>
这是一个可能有帮助的解决方案:
使用Javascript:
<script type="text/javascript">
var opt1 = ['Opt A', 'Opt B', 'Opt C'],
opt2 = [
['OptA A', 'OptA B', 'OptA C'],
['OptB A', 'OptB B', 'OptB C'],
['OptC A', 'OptC B', 'OptC C']
],
opt3 = [
[
['OptAA A', 'ObtAA B', 'OptAA C'],
['OptAB A', 'ObtAB B', 'OptAB C'],
['OptAC A', 'ObtAC B', 'OptAC C'],
],
[
['OptBA A', 'ObtBA B', 'OptBA C'],
['OptBB A', 'ObtBB B', 'OptBB C'],
['OptBC A', 'ObtBC B', 'OptBC C'],
],
[
['OptCA A', 'ObtCA B', 'OptCA C'],
['OptCB A', 'ObtCB B', 'OptCB C'],
['OptCC A', 'ObtCC B', 'OptCC C'],
]
];
jQuery(document).ready(function() {
// populating first dropdown when the page loads...
jQuery.each(opt1, function(i, e) { jQuery('#select1').append('<option value="'+i+'">'+e+'</option>'); });
jQuery('body').on('change', '#select1', function() {
jQuery('#select2').empty();
jQuery.each(opt2[jQuery('#select1').val()], function(i, e) { jQuery('#select2').append('<option value="'+i+'">'+e+'</option>'); });
});
jQuery('body').on('change', '#select2', function() {
jQuery('#select3').empty();
jQuery.each(opt3[jQuery('#select1').val()][jQuery('#select2').val()], function(i, e) { jQuery('#select3').append('<option value="'+i+'">'+e+'</option>'); });
});
});
</script>
HTML:
<select id="select1">
</select>
<select id="select2">
</select>
<select id="select3">
</select>
更新2:
试试这个jsFiddle。
答案 1 :(得分:0)
请参阅以下代码并添加http://jsfiddle.net/2hyda4b1/7/
$(document).ready(function() {
$("#item1, #item2").change(function() {
if($(this).attr('id') == 'item1')
{
var value = $(this).val();
$("#item2").html(options[value]);
}else if($(this).attr('id') == 'item2')
{
var value1 =$("#item2").val();
$("#item3").html(options1[value1]);
}
});
var options = [
"<option value='0'>item1: test 1</option><option value='1'>item1: test 2</option>",
"<option value='1'>item2: test 1</option><option value='2'>item2: test 2</option>",
"<option value='2'>item3: test 1</option><option value='0'>item3: test 2</option>"
];
var options1 = ["<option value='0'>item33313: test 3332233</option><option value='1'>item333: test 33333</option>","<option value='0'>item33313: tesdadadadadat 3332233</option><option value='1'>item333: test 33333</option>","<option value='1'>itlolooloem33313: test 3332233</option><option value='2'>item333: ltoltrolltest 33333</option>"];
});