javascript - BSMultiSelect 通过 Javascript/Jquery 更改所选项目

标签 javascript html jquery bsmultiselect

我一直在使用这个自定义 Bootstrap 选择插件 BSMultiselect 。我需要在页面加载后使用 jQuery/Javascript 选择一些选项。

API 文档不太清楚如何执行此操作。我尝试过的是:

var bsMultiSelect = $('#facilityFilter').BsMultiSelect();
bsMultiSelect.updateOptionSelected(0);

这实际上没有任何作用。

最佳答案

为了选择一个选项,您需要首先设置 selected更新 bsMultiSelect 之前的属性。

代码片段:

$(function () {

  var $multiSelects = $("select[multiple='multiple']");
  $multiSelects.bsMultiSelect();

  // set the selected attribute...
  $multiSelects.find('option').eq(0).prop('selected', 'selected');

  // ....so, update the bsMultiSelect
  $multiSelects.data('DashboardCode.BsMultiSelect').updateOptionSelected(0);

});
.row {
    background: #f8f9fa;
    margin-top: 20px;
}

.col {
    border: solid 1px #6c757d;
    padding: 10px;
}
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>

<script src="https://cdn.jsdelivr.net/npm/@popperjs/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="afccc0ddcaef9d8196819d" rel="noreferrer noopener nofollow">[email protected]</a>/dist/umd/popper.min.js"></script>

<script src="https://cdn.jsdelivr.net/npm/@dashboardcode/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3654455b435a425f45535a53554276071807180f" rel="noreferrer noopener nofollow">[email protected]</a>/dist/js/BsMultiSelect.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ddbfb2b2a9aea9afbcad9de8f3edf3ef" rel="noreferrer noopener nofollow">[email protected]</a>/dist/css/bootstrap.min.css" crossorigin="anonymous">

<form action="/" method="post">
    <div class="container">
        <div class="form-group row">
            <label class="col-form-label col-sm-2" for="edit-states1-id">BsMultiSelect</label>
            <div class="col-sm-10">
                <select name="States1" id="edit-states1-id" class="form-control test"  multiple="multiple" style="display: none;">
                    <option value="AL">Alabama</option>
                    <option value="AK" disabled>Alaska</option>
                    <option value="AZ" >Arizona</option>
                    <option value="AR">Arkansas</option>
                    <option value="CA">California</option>
                    <option value="CO">Colorado</option>
                    <option value="CT">Connecticut</option>
                    <option value="DE">Delaware</option>
                    <option value="DC">District Of Columbia</option>
                    <option value="FL">Florida</option>
                    <option value="GA">Georgia</option>
                    <option value="HI" hidden >Hawaii Hidden</option>
                    <option value="ID" hidden>Idaho Hidden</option>
                    <option value="IL">Illinois</option>
                    <option value="IN">Indiana</option>
                    <option value="IA">Iowa</option>
                    <option value="KS">Kansas</option>
                    <option value="KY">Kentucky</option>
                    <option value="LA">Louisiana</option>
                    <option value="ME">Maine</option>
                    <option value="MD">Maryland</option>
                    <option value="MA">Massachusetts</option>
                    <option value="MI">Michigan</option>
                    <option value="MN">Minnesota</option>
                    <option value="MS">Mississippi</option>
                    <option value="MO">Missouri</option>
                    <option value="MT">Montana</option>
                    <option value="NE">Nebraska</option>
                    <option value="NV">Nevada</option>
                    <option value="NH">New Hampshire</option>
                    <option value="NJ">New Jersey</option>
                    <option value="NM">New Mexico</option>
                    <option value="NY">New York</option>
                    <option value="NC">North Carolina</option>
                    <option value="ND">North Dakota</option>
                    <option value="OH">Ohio</option>
                    <option value="OK">Oklahoma</option>
                    <option value="OR">Oregon</option>
                    <option value="PA">Pennsylvania</option>
                    <option value="RI">Rhode Island</option>
                    <option value="SC">South Carolina</option>
                    <option value="SD">South Dakota</option>
                    <option value="TN">Tennessee</option>
                    <option value="TX">Texas</option>
                    <option value="UT">Utah</option>
                    <option value="VT">Vermont</option>
                    <option value="VA">Virginia</option>
                    <option value="WA">Washington</option>
                    <option value="WV">West Virginia</option>
                    <option value="WI">Wisconsin</option>
                    <option value="WY">Wyoming</option>
                </select>
            </div>
        </div>

    </div>
</form>

关于javascript - BSMultiSelect 通过 Javascript/Jquery 更改所选项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65812975/

相关文章:

javascript - 在处理一些基本的添加时,令人难以置信的 javascript 失败!

javascript - JavaScript 中函数不返回对象

php - 如何创建 jquery 函数来防止向数据库重复输入

php - OAuth-Wrap 初学者教程

javascript - 将多个操作传递给 react-bootstrap 按钮中的 onClick 事件

javascript - 在按钮处理程序 JavaScript 中获取按钮的 id

html - 需要能够使用适用于所有按钮的代码来定位单个按钮

javascript - 使用 jquery 在标签内创建输入框

javascript - 使用 zepto,是否可以对动画进行排队?

javascript - 如何在不导致底部div跳起来的情况下删除顶部div?