5.0.6 • Published 1 year ago

bootstrap5-toggle v5.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

GitHub license Latest release Bootstrap 5 JSDelivr Badge NPM Badge Build Test Security EOL Funding Rate this package

Bootstrap 5 Toggle

Bootstrap 5 Toggle is a bootstrap plugin/widget that converts checkboxes into toggles.


Library Distributions

VersionBootstrap SupportLast ReleaseEnd of Life
v5Bootstrap 5Latest releaseEOL
v4Bootstrap 5Latest releaseEOL
v3Bootstrap 4Latest releaseEOL

See EOL for each version in Security Policy Page.

Demos

Demos and API Docs: https://palcarazm.github.io/bootstrap5-toggle/

Related Bootstrap Plugins



Installation

CDN

JSDelivr Badge

ECMAS Interface

<link
  href="https://cdn.jsdelivr.net/npm/bootstrap5-toggle@5.0.5/css/bootstrap5-toggle.min.css"
  rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/bootstrap5-toggle@5.0.5/js/bootstrap5-toggle.ecmas.min.js"></script>

jQuery Interface

<link
  href="https://cdn.jsdelivr.net/npm/bootstrap5-toggle@5.0.5/css/bootstrap5-toggle.min.css"
  rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/bootstrap5-toggle@5.0.5/js/bootstrap5-toggle.jquery.min.js"></script>

Download

Latest release

NPM

NPM Badge

npm install bootstrap5-toggle@5.0.5

Yarn

yarn add bootstrap5-toggle@5.0.5

Usage

Initialize With HTML

Simply add data-toggle="toggle" to automatically convert a plain checkbox into a bootstrap 5 toggle.

<input id="chkToggle" type="checkbox" data-toggle="toggle" />

Initialize With Code

Toggles can also be initialized via JavaScript code.

EX: Initialize id chkToggle with a single line of JavaScript.

<input id="chkToggle" type="checkbox" checked />
<script>
  document.querySelector("#chkToggle").bootstrapToggle();
</script>

API

Options

  • Options can be passed via data attributes or JavaScript
  • For data attributes, append the option name to data- (ex: data-on="Enabled")
<input
  type="checkbox"
  data-toggle="toggle"
  data-onlabel="Enabled"
  data-offlabel="Disabled" />
<input type="checkbox" id="toggle-two" />
<script>
  document.querySelector("#toggle-two").bootstrapToggle({
    on: "Enabled",
    off: "Disabled",
  });
</script>
NameTypeDefaultDescription
onlabelstring/html"On"Text of the on toggle
offlabelstring/html"Off"Text of the off toggle
sizestring"normal"Size of the toggle. Possible values are: large, normal, small, mini.
onstylestring"primary"Style of the on toggle. Possible values are: primary, secondary, success, danger, warning, info, light, dark and with outline- prefix
offstylestring"secondary"Style of the off toggle. Possible values are: primary, secondary, success, danger, warning, info, light, dark and with outline- prefix
onvaluestringnullSets on state value
offvaluestringnullSets off state value
ontitlestringnullTitle of the on toggle
offtitlestringnullTitle of the off toggle
stylestringAppends the value to the class attribute of the toggle. This can be used to apply custom styles. Refer to Custom Styles for reference.
widthintegernullSets the width of the toggle. if set to null, width will be auto-calculated.
heightintegernullSets the height of the toggle. if set to null, height will be auto-calculated.
tabindexinteger0Sets the tabindex of the toggle.
tristatebooleanfalseSets tristate support

Methods

Methods can be used to control toggles directly.

<input id="toggle-demo" type="checkbox" data-toggle="toggle" />
<script>
  const toggleDemo = document.querySelector("#toggle-demo");
</script>
MethodExampleDescription
initializetoggleDemo.bootstrapToggle()Initializes the toggle plugin with options
destroytoggleDemo.bootstrapToggle('destroy')Destroys the toggle
ontoggleDemo.bootstrapToggle('on')Sets the toggle to 'On' state
offtoggleDemo.bootstrapToggle('off')Sets the toggle to 'Off' state
toggletoggleDemo.bootstrapToggle('toggle')Toggles the state of the toggle on/off
enabletoggleDemo.bootstrapToggle('enable')Enables the toggle
disabletoggleDemo.bootstrapToggle('disable')Disables the toggle
readonlytoggleDemo.bootstrapToggle('readonly')Disables the toggle but preserve checkbox enabled
indeterminatetoggleDemo.bootstrapToggle('indeterminate')Sets the toggle to 'indeterminate' state
determinatetoggleDemo.bootstrapToggle('determinate')Sets the toggle to 'determinate' state

Events

Event Propagation

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.

<input id="toggle-event" type="checkbox" data-toggle="toggle" />
<div id="console-event"></div>
<script>
  document.querySelector("#toggle-event").change(function (e) {
    document
      .querySelector("#console-event")
      .html("Toggle: " + e.target.prop("checked"));
  });
</script>

Stopping Event Propagation

Passing true to the on, off, toggle, determinate and indeterminate 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.

<input id="toggle-silent" type="checkbox" data-toggle="toggle" />
<button class="btn btn-success" onclick="toggleApiOnSilent()">
  On by API (silent)
</button>
<button class="btn btn-success" onclick="toggleApiOffSilent()">
  Off by API (silent)
</button>
<button class="btn btn-warning" onclick="toggleApiOnNotSilent()">
  On by API (not silent)
</button>
<button class="btn btn-warning" onclick="toggleApiOffNotSilent()">
  On by API (not silent)
</button>
<script>
  function toggleApiOnSilent() {
    document.querySelector("#toggle-silent").bootstrapToggle("on", true);
  }
  function toggleApiOffSilent() {
    document.querySelector("#toggle-silent").bootstrapToggle("off", true);
  }
  function toggleApiOnNotSilent() {
    document.querySelector("#toggle-silent").bootstrapToggle("on");
  }
  function toggleApiOffNotSilent() {
    document.querySelector("#toggle-silent").bootstrapToggle("off");
  }
</script>

API vs Input

This also means that using the API or Input to trigger events will work both ways.

<input id="toggle-trigger" type="checkbox" data-toggle="toggle" />
<button class="btn btn-success" onclick="toggleApiOn()">On by API</button>
<button class="btn btn-danger" onclick="toggleApiOff()">Off by API</button>
<button class="btn btn-success" onclick="toggleInpOn()">On by Input</button>
<button class="btn btn-danger" onclick="toggleInpOff()">Off by Input</button>
<script>
  function toggleApiOn() {
    document.querySelector("#toggle-trigger").bootstrapToggle("on");
  }
  function toggleApiOff() {
    document.querySelector("#toggle-trigger").bootstrapToggle("off");
  }
  function toggleInpOn() {
    document.querySelector("#toggle-trigger").prop("checked", true).change();
  }
  function toggleInpOff() {
    document.querySelector("#toggle-trigger").prop("checked", false).change();
  }
</script>

Collaborators welcom!

GitHub Contributors

¿Do you like the project? Give us a :star: in GitHub.

5.0.6

1 year ago

5.0.5

1 year ago

5.0.0-alpha

1 year ago

5.0.4

1 year ago

5.0.3

1 year ago

5.0.2

1 year ago

5.0.1

1 year ago

5.0.0

1 year ago

4.3.6

1 year ago

3.7.4

1 year ago

4.3.5

1 year ago

4.3.4

2 years ago

4.3.3

2 years ago

3.7.3

2 years ago

3.7.2

2 years ago

4.3.2

2 years ago

3.7.1

2 years ago

3.7.0

2 years ago

4.3.1

2 years ago

4.3.0

2 years ago

4.2.0

2 years ago

4.1.0

2 years ago

4.0.1-alpha

2 years ago

4.0.0

2 years ago