Fork me on GitHub

BsMultiselect

Multiselect JQuery Plugin for Bootstrap 4

dashboardcode.BsMultiSelect("#myElement");
$("#myElement").bsMultiSelect(); // jquery


Right-to-left bootstrap multiselect demo (campare with plain input):

درست
ضروری
درست
ضروری

On BS inline form:

درست
ضروری

Notes:

(1) Add dir="rtl" into DOM chierarchy, on any ancestor, e.g.:

<form dir="rtl">...</form>

(2) Add rtl support to bootsrap; most probably if you use BS with RTL this step is allready done if not this patch is enough for BsMultiSelect:

<style>
    [dir="rtl"] .custom-control.custom-checkbox{
        margin-left: 0;
        margin-right: 1.5rem;
    }
    [dir="rtl"] .custom-control.custom-checkbox .custom-control-label::after,
    [dir="rtl"] .custom-control.custom-checkbox .custom-control-label::before{
        left: auto;
        right: -1.5rem;
    }
    .was-validated .form-control:valid, .form-control.is-valid{
        padding-right: 0.75rem;
        padding-left: calc(1.5em + 0.75rem);
        background-position: left calc(0.375em + 0.1875rem) center;
    }    
</style>

(3) Patch the BS4 .was-validated problem - there are no way to exclude BS4 styling for concreate `.was-validated :valid` or `.was-validated :invalid` control:

<style>
    .was-validated .dashboardcode-bsmultiselect .custom-control-input:valid:checked ~ .custom-control-label::before {
        border-color: var(--primary);
        background-color: var(--primary);
    }
    .was-validated .dashboardcode-bsmultiselect .custom-control-input:valid:not(:checked) ~ .custom-control-label::before {
        border-color: #adb5bd 
    } 
</style>