Javascript 将单个引导选择更新为多个

Javascript 将单个引导选择更新为多个,javascript,twitter-bootstrap,bootstrap-select,Javascript,Twitter Bootstrap,Bootstrap Select,我需要根据另一个select的更改事件更改多引导select属性,但它不能正确刷新。select元素在DOM上成功更新,而不是按钮tho 代码如下: HTML <select class="selectpicker" title="-- Select an event" id="eventType"> <option value="1">Appointment</option> <option value="2">Videocall<

我需要根据另一个select的更改事件更改多引导select属性,但它不能正确刷新。select元素在DOM上成功更新,而不是按钮tho

代码如下:

HTML

<select class="selectpicker" title="-- Select an event" id="eventType">
  <option value="1">Appointment</option>
  <option value="2">Videocall</option>
  <option value="3">Multiconference</option>
</select>

<select class="selectpicker" title="-- Select a user" id="userList">
  <option value="1">User 1</option>
  <option value="2">User 2</option>
  <option value="3">User 3</option>
  <option value="4">User 4</option>
  <option value="5">User 5</option>
  <option value="6">User 6</option>
  <option value="7">User 7</option>
</select>
DOM

<select class="selectpicker form-control" title="-- Select max. 5 users" id="userList" tabindex="-98" multiple="multiple"></select>
<button type="button" class="btn dropdown-toggle btn-default" data-toggle="dropdown" role="combobox" aria-owns="bs-select-2" aria-haspopup="listbox" aria-expanded="false" data-id="userList" title="-- Select a user">...</button>

...

我对您的代码做了几处更改以使其正常工作:

  • 如果您总是希望选择
    多个
    选项,但只是将最大选项更改为1,那么在每次更改时执行
    .attr('multiple',true)
    就没有意义了。出于某种原因,它只是把事情搞砸了。只需在模板中将其设置为
    multiple
    。这就解决了你提出的问题
  • 更改时,重置
    userList
    的值。这将使事情变得更清楚、更容易
  • 使用
    $userList.selectpicker({title:''.'})
    更改标题,因为使用
    .attr
    根本不起作用
  • 这是一个完整的工作程序:

    <select class="selectpicker form-control" title="-- Select max. 5 users" id="userList" tabindex="-98" multiple="multiple"></select>
    <button type="button" class="btn dropdown-toggle btn-default" data-toggle="dropdown" role="combobox" aria-owns="bs-select-2" aria-haspopup="listbox" aria-expanded="false" data-id="userList" title="-- Select a user">...</button>