这只是Bootstrap 5(和4)框架的另一个多选插件,它将多选列表转换为带有复选框的易于使用的下拉列表。
用户可以通过单击复选框从下拉列表中选择一个或多个选项。
要清除选择,只需单击x
图标,就像输入的标签一样。
1.要使用该插件,请确保安装了jQuery库和Bootstrap 5(或Bootstrap 4)框架。
<!-- Bootstrap Stylesheet --> <link rel="stylesheet" href="/path/to/cdn/bootstrap.min.css" /> <!-- jQuery Is Optional --> <script src="/path/to/cdn/jquery.slim.min.js"></script> <!-- Bootstrap JavaScript --> <script src="/path/to/cdn/bootstrap.bundle.min.js"></script>
2.在jQuery之后加载jQuery BsMultiSelect插件的脚本。
<!-- For Bootstrap 5 --> <script src="dist/js/BsMultiSelect.min.js"></script> <!-- For Bootstrap 4 --> <script src="dist/js/BsMultiSelect.bs4.min.js"></script>
3.åªéè°ç¨å½æ°仪表板代码BsMultiSelect
在多选列表中,插件将完成其余操作。
<select name="states" id="example" class="form-control" multiple="multiple" style="display: none;"> <option value="AL">Alabama</option> <option value="AK">Alaska</option> <option value="AZ">Arizona</option> <option value="AR">Arkansas</option> <option selected value="CA">California</option> ... </select>
$(function(){ $("select").bsMultiSelect(); });
4.您也可以在JavaScript中定义如下选项。
<div class="container"> ... </div>
$('.container').bsMultiSelect({ options : [ {text:"Asia", value:"C0",hidden:false,disabled:false,selected:true}, {text:"Europe",value:"C1",hidden:false,disabled:false,selected:false}, {text:"Australia",value:"C2",hidden:false,disabled:false,selected:false} ], getDisabled : () => {}, getIsValid : () => {}, getIsInvalid : () => {} });
5.èªå®ä¹æ件çææé»è®¤é项ã
$("select").bsMultiSelect({ useCssPatch: true, containerClass: "dashboardcode-bsmultiselect", css: css, cssPatch: cssPatch, placeholder: '', staticContentGenerator: null, getLabelElement: null, pickContentGenerator: null, choiceContentGenerator: null, buildConfiguration: null, isRtl: null, setSelected: null, required: null, optionsAdapter: null, options: null, getDisabled: null, getSize: null, getValidity: null, labelElement: null, valueMissingMessage: '', getIsValueMissing: null });
6.覆盖默认样式和Bootstrap 4类以自定义插件。
$("select").bsMultiSelect({ cssPatch: { choices: { listStyleType: 'none' }, picks: { listStyleType: 'none', display: 'flex', flexWrap: 'wrap', height: 'auto', marginBottom: '0' }, choice: 'px-md-2 px-1', choice_hover: 'text-primary bg-light', filterInput: { border: '0px', height: 'auto', boxShadow: 'none', padding: '0', margin: '0', outline: 'none', backgroundColor: 'transparent', backgroundImage: 'none' // otherwise BS .was-validated set its image }, filterInput_empty: 'form-control', // need for placeholder, TODO test form-control-plaintext // used in staticContentGenerator picks_disabled: { backgroundColor: '#e9ecef' }, picks_focus: { borderColor: '#80bdff', boxShadow: '0 0 0 0.2rem rgba(0, 123, 255, 0.25)' }, picks_focus_valid: { borderColor: '', boxShadow: '0 0 0 0.2rem rgba(40, 167, 69, 0.25)' }, picks_focus_invalid: { borderColor: '', boxShadow: '0 0 0 0.2rem rgba(220, 53, 69, 0.25)' }, // used in BsAppearance picks_def: { minHeight: 'calc(2.25rem + 2px)' }, picks_lg: { minHeight: 'calc(2.875rem + 2px)' }, picks_sm: { minHeight: 'calc(1.8125rem + 2px)' }, // used in pickContentGenerator pick: { paddingLeft: '0px', lineHeight: '1.5em' }, pickButton: { fontSize: '1.5em', lineHeight: '.9em', float: "none" }, pickContent_disabled: { opacity: '.65' }, // used in choiceContentGenerator choiceContent: { justifyContent: 'initial' }, // BS problem: without this on inline form menu items justified center choiceLabel: { color: 'inherit' }, // otherwise BS .was-validated set its color choiceCheckBox: { color: 'inherit' }, choiceLabel_disabled: { opacity: '.65' } } });
7.您可以在没有Bootstrap 4的情况下使用自己的CSS来设计插件的样式。
$("select").bsMultiSelect({ useCssPatch: false, css: { choices: 'dropdown-menu', // bs4, in bsmultiselect.scss as ul.dropdown-menu choice_hover: 'hover', // not bs4, in scss as 'ul.dropdown-menu li.hover' choice_selected: '', choice_disabled: '', picks: 'form-control', // bs4, in scss 'ul.form-control' picks_focus: 'focus', // not bs4, in scss 'ul.form-control.focus' picks_disabled: 'disabled', // not bs4, in scss 'ul.form-control.disabled' pick_disabled: '', pickFilter: '', filterInput: '', // used in BsPickContentStylingCorrector pick: 'badge', // bs4 pickContent: '', pickContent_disabled: 'disabled', // not bs4, in scss 'ul.form-control li span.disabled' pickButton: 'close', // bs4 // used in BsChoiceContentStylingCorrector // choice: 'dropdown-item', // it seems like hover should be managed manually since there should be keyboard support choiceCheckBox_disabled: 'disabled', // not bs4, in scss as 'ul.form-control li .custom-control-input.disabled ~ .custom-control-label' choiceContent: 'custom-control custom-checkbox d-flex', // bs4 d-flex required for rtl to align items choiceCheckBox: 'custom-control-input', // bs4 choiceLabel: 'custom-control-label justify-content-start', choiceLabel_disabled: '' } });
8.将其作为ES模块来实现。
import Popper from "https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.1/esm/popper.js" import {BsMultiSelect} from "./dist/js/BsMultiSelect.esm.min.js" var mySelect = document.querySelector('#select-id'); var environment = {window, Popper}; bsMultiSelect = BsMultiSelect(mySelect, environment, { // settings here });
9.使用以下API方法更新组件上的更改。
$('select').bsMultiSelect("UpdateIsValid"); $('select').bsMultiSelect("UpdateDisabled"); $('select').bsMultiSelect("UpdateSize"); $('select').bsMultiSelect("UpdateWasValidated"); $('select').bsMultiSelect("UpdateValidy"); $('select').bsMultiSelect("UpdateOptionsSelected", index); $('select').bsMultiSelect("UpdateOptionDisabled", index); $('select').bsMultiSelect("UpdateOptionHidden", index); // or all-in-one $('select').bsMultiSelect("UpdateAppearance"); $('select').bsMultiSelect("UpdateData");
2.0.0贝塔28(2021-12-19)
2.0.0贝塔27(2021-12-08)
2.0.0贝塔26(2021-12-05)
2.0.0贝塔25(2021-12-01)
v1.1.18 (2021-09-06)
v1.1.17 (2021-09-02)
v1.1.16 (2021-08-25)
v1.1.15 (2021-07-04)
v1.1.14 (2021-07-04)
v1.1.13 (2021-06-29)
v1.1.13 (2021-06-28)
v1.1.12 (2021-06-26)
v1.1.11 (2021-06-25)
v1.1.8 (2021-06-24)
v1.1.7 (2021-06-20)
v1.1.6 (2021-06-17)
v1.1.1 (2021-06-08)
1.1.0版(2021-06-08)
1.0.4版(2021-06-05)
1.0.3版(2021-06-04)
v1.0.1/2 (2021-06-03)
1.0.0版(2021-05-27)
版本0.6.27(2020-08-19)
版本0.6.27(2020-08-05)
版本0.6.25(2020-07-02)
版本0.6.23(2020-06-27)
版本0.6.22(2020-06-26)
版本0.6.21(2020-06-25)
版本0.6.20(2020-06-24)
版本0.6.19(2020-06-23)
版本0.6.18(2020-06-22)
版本0.6.15(2020-06-20)
版本0.6.14(2020-06-19)
版本0.6.13(2020-06-18)
版本0.6.12(2020-06-17)
版本0.6.11(2020-06-16)
版本0.6.10(2020-06-15)
v0.6.9 (2020-06-13)
版本0.6.8(2020-06-13)
版本0.6.7(2020-06-11)
v0.6.5 (2020-06-11)
版本0.6.4(2020-06-10)
v0.6.3 (2020-06-09)
版本0.6.2(2020-06-08)
版本0.6.0(2020-06-02)
版本0.5.68(2020-06-01)
版本0.5.67(2020-05-31)
版本0.5.66(2020-05-30)
版本0.5.65(2020-05-29)
版本0.5.64(2020-05-29)
版本0.5.63(2020-05-21)
版本0.5.62(2020-05-20)
版本0.5.61(2020-05-19)
版本0.5.60(2020-05-18)
版本0.5.59(2020-05-17)
版本0.5.58(2020-05-05)
版本0.5.57(2020-05-05)
版本0.5.56(2020-05-04)
版本0.5.55(2020-05-01)
版本0.5.53(2020-04-30)
版本0.5.52(2020-04-29)
版本0.5.51(2020-04-28)
版本0.5.50(2020-04-26)
版本0.5.49(2020-04-25)
版本0.5.48(2020-04-24)
版本0.5.47(2020-04-22)
版本0.5.46(2020-04-21)
版本0.5.45(2020-04-19)
版本0.5.44(2020-04-18)
版本0.5.43(2020-04-17)
版本0.5.42(2020-04-16)
版本0.5.41(2020-04-15)
版本0.5.40(2020-03-18)
版本0.5.39(2020-03-17)
版本0.5.38(2020-03-16)
版本0.5.37(2020-03-15)
版本0.5.36(2020-03-12)
版本0.5.35(2020-03-11)
版本0.5.34(2020-03-10)
版本0.5.33(2020-03-09)
版本0.5.32(2020-03-08)
版本0.5.31(2020-03-07)
版本0.5.30(2020-03-06)
版本0.5.29(2020-03-05)
版本0.5.28(2020-03-04)
版本0.5.27(2020-03-03)
版本0.5.26(2020-03-02)
版本0.5.25(2020-03-01)
版本0.5.24(2020-02-29)
版本0.5.23(2020-02-28)
版本0.5.22(2020-02-27)
版本0.5.21(2020-02-26)
版本0.5.20(2020-02-25)
版本0.5.19(2020-02-24)
版本0.5.18(2020-02-24)
版本0.5.16(2020-02-22)
版本0.5.15(2020-02-21)
版本0.5.14(2020-02-20)
版本0.5.13(2020-02-19)
版本0.5.12(2020-02-18)
版本0.5.11(2020-02-17)
版本0.5.10(2020-02-12)
版本0.5.9(2020-02-12)
版本0.5.8(2020-02-10)
版本0.5.6/7(2020-02-09)
v0.5.5 (2020-02-08)
版本0.5.4(2020-02-06)
版本0.5.3(2020-02-06)
版本0.5.2(2020-02-05)
版本0.5.0(2020-02-04)
0.4.34贝塔(2020-01-24)
版本0.4.33(2019-12-21)
版本0.4.32(2019-12-20)
版本0.4.31(2019-12-20)
版本0.4.30(2019-12-19)
版本0.4.29(2019-12-17)
版本0.4.27(2019-12-17)
版本0.4.26(2019-12-16)
版本0.4.20(2019-12-14)
版本0.4.19(2019-12-14)
版本0.4.18(2019-12-13)
版本0.4.17(2019-12-11)
版本0.4.10/11/12(2019-12-08)
版本0.4.10/11/12(2019-12-07)
版本0.4.9(2019-12-06)
版本0.4.6(2019-12-03)
版本0.4.5(2019-11-28)
版本0.4.4(2019-11-27)
版本0.4.3(2019-11-26)
版本0.4.2(2019-11-13)
版本0.4.1(2019-11-01)
版本0.4.0(2019-10-25)
版本0.3.0(2019-10-21)
版本0.2.24(2019-07-28)
版本0.2.23(2019-07-27)
版本0.2.22(2019-04-12)
2018-10-11
2018-07-25
2018-06-25
2018-06-23
2018-06-22
2018-06-20
2018-06-13
2018-06-11
2018-06-06
2018-06-05
2018-06-02
2018-05-31
2018-05-24
2018-05-23
2018-05-21