繁体   English   中英

使用bootstrap-select.js根据第一个下拉菜单更改第二个下拉菜单的选项

[英]Change the options of a second dropdown based on first dropdown using the bootstrap-select.js

我试图根据第一个下拉列表的选择来更改第二个下拉列表的选项。

您可以在这里看到它的代码。 但是,因为自从我使用bootstrap-select.js以来它不起作用。 我之所以添加它,是为了有一个不错的多重效果选择。

显然,原因是因为它不再是JS之后带有<option>的简单<select> ,但是我不知道如何找到解决方案。

这是代码

<select class="form-control" id="choice1">
     <option value="Food">Food</option>
     <option value="Fruit">Fruit</option>
  </select>

<select class="selectpicker" multiple id="choice2">
     <option data-option="Food" value="M">Mustard</option>
     <option data-option="Food" value="M">Ketchup</option>
     <option data-option="Fruit" value="M">Apple</option>
    <option data-option="Fruit" value="M">Orange</option>
  </select>

$("#choice1").change(function() { 
    if(typeof $(this).data('options') === "undefined") {

    $(this).data('options',$('#choice2 option').clone());
    } 
var id = $(this).val();
var options = $(this).data('options').filter('[data-option=' + id + ']');
$('#choice2').html(options);
});

Bootstrap-select.js具有可以使用的refresh方法。 您的JS代码类似于:

$("#choice1").change(function () {
    if (typeof $(this).data('options') === "undefined") {
        /*Taking an array of all options-2 and kind of embedding it on the select1*/
        $(this).data('options', $('#choice2 option').clone());
    }
    var id = $(this).val();
    var options = $(this).data('options').filter('[data-option=' + id + ']');
    $('#choice2').html(options);
    //Refresh #choice2 to show the new values
    $('#choice2').selectpicker('refresh');
});

是一个工作示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM