BootStrap-select插件動態添加option無法顯示


問題描述: 

   在使用bootstrap-select插件時出現下拉框無法顯示動態追加的option,經過查看element元素發現,select標簽已經append進去了所需的option選項,但是頁面就是無法顯示,經過源碼分析發現,bootstrap在對select初始化渲染后,會在ul標簽中追加li標簽屬性,而此時無法顯示動態追加的option便是因為此li標簽中沒有值。因為在動態對select進行動態后沒有進行重新進行渲染,導致ul標簽下的li沒有將append的option渲染進去,至此不能正常顯示。

源碼分析:

<div class="form-group">
        <label class="control-label">下拉框:</label>
        <select class="selectpicker form-control" id="selector" name="selector">
              <option></option>
        </select>
</div>





$.ajax({
    url:'######',
    type:'POST',
    success:function (data) {

        $.each(data, function (index, item) {
            $("#selector").append("<option value='"+data[index].id+"'>"+data[index].name+"</option>");
        });
     

        //使用refresh方法更新UI以匹配新狀態。
        $('#selector').selectpicker('refresh');
        //render方法強制重新渲染引導程序 - 選擇ui。
        $('#selector').selectpicker('render');
    
    }

});

  

解決辦法:

   注意js中最后兩行,缺一不可;

 //使用refresh方法更新UI以匹配新狀態。
 $('#selector').selectpicker('refresh');
 //render方法強制重新渲染引導程序 - 選擇ui。
 $('#selector').selectpicker('render');

refresh對select進行最新狀態個更新后,在使用render方法對ul標簽進行重新渲染,由此動態append的option值也會追加到ul標簽中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM