使用bootstrap-select.js根据第一个下拉列表更改第二个下拉列表的选项
Change the options of a second dropdown based on first dropdown using the bootstrap-select.js
我正在尝试根据第一个下拉列表的选择更改第二个下拉列表中的选项。
它的工作代码正如您在这里看到的那样。然而,因为它不起作用,因为我使用bootstrap-select.js。我添加它的原因是为了有一个很好的多重效果选择。
显然,原因是它不再是一个简单的<select>
,在JS之后有<option>
,但我不知道如何找到解决方案。
这是代码
<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');
});
这是一个工作演示。
相关文章:
- 使用Ajax或JavaScript选择下拉列表选项后,在同一页面上执行PHP脚本
- webforms:在javascript中动态添加下拉列表选项
- 动态下拉列表选项在添加多列后未填充
- 如何在从代码后面显示之前,在弹出窗口中选择预先填充的下拉列表选项
- 删除基于先前下拉列表选择的“选择下拉列表”选项
- Yii-如何获得下拉列表选项值与列表中的文本相同
- 动态生成的下拉列表选项的挖空绑定
- 如何阻止用户选择下拉列表选项而不“禁用”它
- 使用JavaScript / jQuery向价格计算器添加下拉列表选项
- 用省略号设置下拉列表选项
- 如何使用服务器生成的数组中的值动态更新下拉列表选项
- html下拉列表选项
- 为依赖下拉列表选项提供一个值以创建函数
- 如何根据下拉列表选项弹出单选按钮供用户输入
- ASP.. NET下拉列表选项取决于其他下拉列表中选择的选项
- jQuery基于下拉列表选项更改文本
- 获取字符串,但不获取下拉列表选项选择中的值
- 使用 javascript 数组创建的下拉列表选项在 IE 中不可见
- 如何在量角器测试中获得具有相同类的不同下拉列表选项
- 输入下拉列表“选项值”;变成javascript函数