在选择第一个bootstrap选择时更新第二个bootstrap select的值

时间:2017-01-16 08:10:52

标签: javascript jquery bootstrap-selectpicker

我是bootstrap-selectpicker的新手。我有两个选择字段。我想知道如何根据第一个选择器的选择来更新第二个选择器的值。

class

Javascript代码:

<select  id="id1" name="name1" class="selectpicker"  data-live-search="true">
  <option value="A">AAA</option>
  <option value="B">BBB</option>
</select>
<select  id="id2" name="name2" class="selectpicker"  data-live-search="true">
  <option value="A">AAA</option>
  <option value="B">BBB</option>
  <option value="C">CCC</option>
  <option value="D">DDD</option>
</select>

上面的JS代码初始化了两个selectpickers。我错过了什么吗?或者这是错误的初始化方式?有人可以提供使用多个bootstrap-selectpickers的示例吗?

3 个答案:

答案 0 :(得分:2)

你可以做到

$('.selectpicker').on('changed.bs.select', function (e) {
  if($(this).attr('name')=="name2"){
      $(".selectpicker[name='name1']").val(/*set value*/);
  }
  else{
      $(".selectpicker[name='name2']").val(/*set value*/);
  }
});

changed.bs.select是图书馆的一个事件,您可以查看here

答案 1 :(得分:1)

尝试这个,我希望这会奏效 如果您的第一个选择值是1,那么在第二个选择中将只选择与第一个选择相同的值

$("#select1").change(function(){  

if ($(this).data('options') == undefined){
$(this).data('options', $('#select2 option').clone());  

}  var id = $(this).val();  

var options = $(this).data('options').filter('[value=' + id + ']');

 $('#select2').html(options);
});

答案 2 :(得分:0)

如果您希望通过身份证明,可以分别对其进行初始化,但不一定需要:

$('#id1').selectpicker({
  style: 'btn-info',
  size: 4
});
$('#id2').selectpicker({
  style: 'btn-info',
  size: 4
});

根据第一个选择更新selectpicker的第二个值很容易。 当您更改第一个选择标记的值时,您应该只使用

获取第一个选择标记的值
var result = $('select[name=name1]').val();

然后将其设置为另一个

$('select[name=name2]').val(result);
$('#id2').selectpicker('refresh');