Bootstrap 4 Toggle is a bootstrap plugin/widget that converts checkboxes into toggles.
| Project | Description |
|---|---|
| bootstrap4-toggle | Supports bootstrap4 (requires jQuery) |
| bootstrap-switch-button | Supports bootstrap4+ (ES6 class, no dependencies) |
| bootstrap-switch-button-react | Supports bootstrap4+ (React component, no dependencies) |
Demos and API Docs:https://gitbrent.github.io/bootstrap4-toggle/
Table of Contentsgenerated with DocToc
<linkhref="https://cdn.jsdelivr.net/gh/gitbrent/bootstrap4-toggle@3.6.1/css/bootstrap4-toggle.min.css" rel="stylesheet"><scriptsrc="https://cdn.jsdelivr.net/gh/gitbrent/bootstrap4-toggle@3.6.1/js/bootstrap4-toggle.min.js"></script>npm install bootstrap4-toggleyarn add bootstrap4-toggleSimply add data-toggle="toggle" to automatically convert a plain checkbox into a bootstrap 4 toggle.
<inputid="chkToggle" type="checkbox" data-toggle="toggle">Toggles can also be initialized via JavaScript code.
EX: Initialize id chkToggle with a single line of JavaScript.
<inputid="chkToggle" type="checkbox" checked><script>$(function(){$('#chkToggle').bootstrapToggle();});</script>- Options can be passed via data attributes or JavaScript
- For data attributes, append the option name to
data-(ex:data-on="Enabled")
<inputtype="checkbox" data-toggle="toggle" data-on="Enabled" data-off="Disabled"><inputtype="checkbox" id="toggle-two"><script>$(function(){$('#toggle-two').bootstrapToggle({on: 'Enabled',off: 'Disabled'});})</script>| Name | Type | Default | Description |
|---|---|---|---|
on | string/html | "On" | Text of the on toggle |
off | string/html | "Off" | Text of the off toggle |
size | string | "normal" | Size of the toggle. Possible values are: large, normal, small, mini. |
onstyle | string | "primary" | Style of the on toggle. Possible values are: primary,secondary,success,danger,warning,info,light,dark |
offstyle | string | "light" | Style of the off toggle. Possible values are: primary,secondary,success,danger,warning,info,light,dark |
style | string | Appends the value to the class attribute of the toggle. This can be used to apply custom styles. Refer to Custom Styles for reference. | |
width | integer | null | Sets the width of the toggle. if set to null, width will be auto-calculated. |
height | integer | null | Sets the height of the toggle. if set to null, height will be auto-calculated. |
Methods can be used to control toggles directly.
<inputid="toggle-demo" type="checkbox" data-toggle="toggle">| Method | Example | Description |
|---|---|---|
| initialize | $('#toggle-demo').bootstrapToggle() | Initializes the toggle plugin with options |
| destroy | $('#toggle-demo').bootstrapToggle('destroy') | Destroys the toggle |
| on | $('#toggle-demo').bootstrapToggle('on') | Sets the toggle to 'On' state |
| off | $('#toggle-demo').bootstrapToggle('off') | Sets the toggle to 'Off' state |
| toggle | $('#toggle-demo').bootstrapToggle('toggle') | Toggles the state of the toggle on/off |
| enable | $('#toggle-demo').bootstrapToggle('enable') | Enables the toggle |
| disable | $('#toggle-demo').bootstrapToggle('disable') | Disables the toggle |
Note All events are propagated to and from input element to the toggle.
You should listen to events from the <input type="checkbox"> directly rather than look for custom events.
<inputid="toggle-event" type="checkbox" data-toggle="toggle"><divid="console-event"></div><script>$(function(){$('#toggle-event').change(function(){$('#console-event').html('Toggle: '+$(this).prop('checked'))})})</script>Passing true to the on/off methods will enable the silent option to prevent the control from propagating the change event in
cases where you want to update the controls on/off state, but do not want to fire the onChange event.
<inputid="toggle-silent" type="checkbox" data-toggle="toggle"><buttonclass="btn btn-success" onclick="toggleApiOnSilent()" >On by API (silent)</button><buttonclass="btn btn-success" onclick="toggleApiOffSilent()">Off by API (silent)</button><buttonclass="btn btn-warning" onclick="toggleApiOnNotSilent()">On by API (not silent)</button><buttonclass="btn btn-warning" onclick="toggleApiOffNotSilent()">On by API (not silent)</button><script>functiontoggleApiOnSilent(){$('#toggle-silent').bootstrapToggle('on',true);}functiontoggleApiOffSilent(){$('#toggle-silent').bootstrapToggle('off',true);}functiontoggleApiOnNotSilent(){$('#toggle-silent').bootstrapToggle('on');}functiontoggleApiOffNotSilent(){$('#toggle-silent').bootstrapToggle('off');}</script>This also means that using the API or Input to trigger events will work both ways.
<inputid="toggle-trigger" type="checkbox" data-toggle="toggle"><buttonclass="btn btn-success" onclick="toggleApiOn()" >On by API</button><buttonclass="btn btn-danger" onclick="toggleApiOff()">Off by API</button><buttonclass="btn btn-success" onclick="toggleInpOn()" >On by Input</button><buttonclass="btn btn-danger" onclick="toggleInpOff()">Off by Input</button><script>functiontoggleApiOn(){$('#toggle-trigger').bootstrapToggle('on')}functiontoggleApiOff(){$('#toggle-trigger').bootstrapToggle('off')}functiontoggleInpOn(){$('#toggle-trigger').prop('checked',true).change()}functiontoggleInpOff(){$('#toggle-trigger').prop('checked',false).change()}</script>