在我的网页上,我想要两个下拉菜单,如果您从第一个下拉菜单中选择了不同的选项,则第二个下拉列表中将出现不同的选项。
例如,
如果在下拉菜单1中选择了类别A,
我希望A1,A2,A3出现在下拉菜单2中。
如果在下拉菜单1中选择了类别B,
我希望B1,B2,B3出现在下拉菜单2中。
如果我的HTML包含以下文本行:
<select id="independent">
<option value="CatA"> A </option>
<option value="CatB"> B </option>
</select>
<select id="dependent">
<option value="A021"> A1 </option>
<option value="A22019"> A2 </option>
<option value="A3541"> A3 </option>
<option value="B148"> B1 </option>
<option value="B2"> B2 </option>
<option value="B397415"> B3 </option>
</select>
如何使用JavaScript / jQuery实现如上所述的目标?
最佳答案
使用jQuery事件.on,并听取选择框中的更改。1.如果所选选项已更改,请查找所选值,然后针对所选选项修改第二个选择框。
这是一个简单的片段
$(document).ready(function() {
$("#dependent > option").hide();
$(document).on('change', '#independent', function() {
var val = $(this).val();
console.log(val);
$("#dependent > option").show();
if (val == 'CatA') {
$("#dependent > option").each(function() {
var optionVal = $(this).val();
var letter = optionVal.charAt(0);
//console.log(letter);
if (letter == 'B')
$(this).hide();
});
} else if (val == 'CatB') {
$("#dependent > option").each(function() {
var optionVal = $(this).val();
var letter = optionVal.charAt(0);
//console.log(letter);
if (letter == 'A')
$(this).hide();
});
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="independent">
<option value=""> Select </option>
<option value="CatA"> A </option>
<option value="CatB"> B </option>
</select>
<select id="dependent">
<option value=""> Select </option>
<option value="A1"> A1 </option>
<option value="A2"> A2 </option>
<option value="A3"> A3 </option>
<option value="B1"> B1 </option>
<option value="B2"> B2 </option>
<option value="B3"> B3 </option>
</select>