【问题标题】:Second drop-down content dependent on first drop-down第二个下拉内容依赖于第一个下拉
【发布时间】:2017-06-22 21:06:33
【问题描述】:

在我的网页上,我希望有两个下拉菜单,如果您从第一个下拉菜单中选择不同的选项,第二个下拉菜单中将出现不同的选项。

例如,
如果在下拉菜单 1 中选择了 A 类
我希望 A1A2A3 出现在下拉菜单 2 中。
如果在下拉菜单 1 中选择了 B 类
我希望 B1B2B3 出现在下拉菜单 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 实现如上所述的我想要的?

【问题讨论】:

    标签: javascript jquery drop-down-menu html-select


    【解决方案1】:

    使用 jQuery 事件 .on 并监听选择框的变化 1. 如果选择的选项发生了变化,请查看选择了哪个值,然后根据选择的选项修改第二个选择框。

    这是一个简单的sn-p

    $(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>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-29
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多