这只是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