2017-01-16 62 views
2

我是bootstrap-selectpicker的新手。我有兩個選擇字段。我想知道如何根據第一個selectpicker的選擇更新第二個selectpicker的值。選擇第一個引導程序選擇的第二個引導程序選擇的更新值

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

Javascript代碼:

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

上面的JS代碼初始化二者selectpickers。我錯過了什麼嗎?或者這是初始化的錯誤方法?有人可以提供一個使用多個bootstrap-selectpickers的例子嗎?

回答

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,那麼在第二個選擇是隻選擇相同的值作爲第一選擇

$("#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); 
}); 
0

您可以初始化它們seprately如果你想通過ID但它不是neccesarily需要:

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

要根據第一選擇是容易更新selectpicker的第二個值。 當您更改第一selectpicker的價值,你應該只獲得第一個的值與

var result = $('select[name=name1]').val(); 

然後將其設置到另一個

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