【问题标题】:Dynamically populate one select-picker based on value in another select-picker根据另一个选择器中的值动态填充一个选择器
【发布时间】:2016-01-08 04:54:45
【问题描述】:

我有一个 html/css 引导界面,如下所示:

当用户从左侧的灰色选择器中选择一个选项时,我希望右侧的蓝色选择器填充相应的 json 变量集。

换句话说,如果用户选择左侧的“天文学”主题,我希望蓝色选择器填充类名称,如“星星”、“行星”、“月亮”。

这是我的选择选择器的设置方式:

 <div id="course1">
               <center>
                <select class="selectpicker show-menu-arrow" data-style="btn-inverse" data-size="7" data-width="300px">
        
                <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
                <script type="text/javascript">

                var json = {
                    "courseSubject1": "Accountancy",
                    "courseSubject2": "American Studies",
                    "courseSubject3": "Anatomy & Regenerative Biology",
                    "courseSubject4": "Anesthesiology"
                  
                };

                $.each(json, function(key, value) {
                    $('.selectpicker').append('<option value="' + key + '">' + json[key] + '</option>');
                })

                  </script>
                </select>
                 
                 
                <select class="selectpicker" data-style="btn-primary" data-width="600px">
                <option>Stars</option>
                <option>Planets</option>
                <option>Moons</option>
                </select>

如何根据灰色选择器中选择的选项动态填充蓝色选择器?

【问题讨论】:

  • 您的示例令人困惑的是,两个选择都有 selectpicker 类,这意味着您的 .append 将附加到两个选择...这是您想要的吗??
  • 我不想添加从灰色到蓝色的任何东西。如果用户选择了一个灰色选项,我想从单独的源附加一组变量。例如,如果在左侧选择了“A”,则将集合“1”附加到蓝色。但是,如果在左侧选择了“B”,则将集合“2”附加到蓝色。

标签: javascript jquery twitter-bootstrap drop-down-menu


【解决方案1】:

将更改事件处理程序添加到蓝色选择输入。当它发生变化时,它将清空灰色选择,然后向其中添加每个新选项:

$('.blue-select').on('change', function() {
  // If you want to conditionally populate your list
  // you may need to get the selected options like this:
  // $(this).find("option:selected").val()
  $('.grey-select').empty();
  $.each(json, function(key, value) {
     $('.grey-select').append('<option value="' + key + '">' + value + '</option>');
  })
});

【讨论】:

  • 我不希望灰色拾取器被清空。如果在左侧选择了“天文学”,我希望在右侧可以使用“星星”、“行星”、“月亮”。但是,如果左侧选择了“Business”,那么我希望右侧显示“Economics”、“Finance”、“Asset MGMT”。
  • 你的意思是灰色选择有你不想删除的预先存在的值吗?
  • 是的。灰色具有我永远不想删除的预先存在的值。每个灰色值都有一组相应的不同变量,我想用蓝色显示。
猜你喜欢
  • 2020-07-31
  • 1970-01-01
  • 2011-08-17
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2020-03-03
相关资源
最近更新 更多