Easy Input Spinner Plugin For Bootstrap 4 and 5 - InputSpinner.js
| File Size: | 54.1 KB |
|---|---|
| Views Total: | 41884 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
An easy yet customizable input spinner plugin (less than 4KB minified) for Bootstrap framework (Bootstrap 4 & 5) that enables the users to increment/decrement a number by using +/- buttons.
Installation:
# NPM $ npm install bootstrap-input-spinner --save
How to use it:
1. Load the latest Bootstrap framework and jQuery library in the html document.
<!-- Bootstrap --> <link rel="stylesheet" href="/path/to/cdn/bootstrap.min.css" /> <script src="/path/to/cdn/bootstrap.bundle.min.js"></script> <!-- Only required when using Bootstrap 4 --> <script src="/path/to/cdn/jquery.min.js"></script>
2. Import the InputSpinner.js script.
<!-- Bootstrap 5 Version -->
<script type="module">
import {InputSpinner} from "./src/InputSpinner.js"
</script>
<!-- Bootstrap 4 Version -->
<script src="bootstrap-input-spinner.js"></script>
3. Create a normal number input for the input spinner. The plugin supports native input attributes such as value, min, max and step.
<input type="number" value="5" min="0" max="100" step="1">
4. Initialize the input spinner by calling the function on the number input.
// Bootstrap 5 Version
const inputSpinnerElements = document.querySelectorAll("input[type='number']")
for (const inputSpinnerElement of inputSpinnerElements) {
new InputSpinner(inputSpinnerElement, {
// options here
})
}
// Bootstrap 4 Version
$("input[type='number']").inputSpinner({
// options here
});
5. If you want to limit the number of decimal places and disable thousands separator:
<input type="number" value="5" min="0" max="100" step="1"
data-decimals="2"
data-digit-grouping="false">
6. Add prefix & suffix to the input element
<input type="number" value="5" min="0" max="100" step="1"
data-prefix=""
data-suffix="">
7. Set the input mode. Default: 'decimal'.
<input type="number" value="5" min="0" max="100" step="1"
inputmode="decimal">
8. Available plugin options to customize the input spinner.
{
// button text/icons
decrementButton: "<strong>−</strong>",
incrementButton: "<strong>+</strong>",
// class of input group
groupClass: "",
// button class
buttonsClass: "btn-outline-secondary",
// button width
buttonsWidth: "2.5em",
// text alignment
textAlign: "center",
// delay in milliseconds
autoDelay: 500,
// interval in milliseconds
autoInterval: 50,
// set this `true` to disable the possibility to enter or paste the number via keyboard
buttonsOnly: false,
// set this to `false` to disallow the use of the up and down arrow keys to step
keyboardStepping: true,
// the locale, per default detected automatically from the browser
locale: navigator.language,
// the editor (parsing and rendering of the input)
editor: I18nEditor,
// the template of the input
template: // the template of the input
'<div class="input-group ${groupClass}">' +
'<button style="min-width: ${buttonsWidth}" class="btn btn-decrement ${buttonsClass} btn-minus" type="button">${decrementButton}</button>' +
'<input type="text" inputmode="decimal" style="text-align: ${textAlign}" class="form-control form-control-text-input"/>' +
'<button style="min-width: ${buttonsWidth}" class="btn btn-increment ${buttonsClass} btn-plus" type="button">${incrementButton}</button>' +
'</div>'
});
9. Event handlers:
changedElement.addEventListener("change", function(event) {
valueOutput.innerHTML = changedElement.value
})
10. Change the value programmatically:
instance.setValue(new value)
11. Destryo the instance.
instance.destroy()
Changelog:
v4.0.0 (2024-02-05)
-
- deprecated the old es5 version. It is now a module
v3.3.0 (2023-05-11)
- New es6 module beta version under /src/es6-beta.
v3.2.0 (2023-03-09)
- changed the id postfix from "_MP_cBdLN29i2" to ":input_spinner".
v3.1.14 (2022-11-24)
- var => let / const
v3.1.13 (2022-08-06)
- Fixed: min max and value change at the same time
v3.1.12 (2022-06-11)
- Stop stepping on focusout
v3.1.8 (2022-01-21)
- Updated for Bootstrap 5
v3.1.7 (2021-10-04)
- bugfix change event from document.body
v3.1.2 (2021-10-02)
- Code cleanup
v3.0.3 (2021-09-14)
- no auto-interval with "autoInterval: undefined"
v3.0.2 (2021-05-28)
- Compatible with Bootstrap 5
v2.1.1 (2021-05-14)
- renamed back to bootstrap-input-spinner.js
v2.0.12 (2021-04-29)
- prevent double creation and print warning in console
v2.0.11 (2021-04-26)
- prevent failure, when destroyed element is not an input spinner
v2.0.10 (2021-03-30)
- Fixed Spinner(s) not working properly after changing the value programmatically
v1.17.2 (2021-01-28)
- Right-click on button sends spinner on endless increment/decrement operation
v1.17.0 (2021-01-19)
- set default `keyboardStepping` `true`
v1.16.9 (2021-01-11)
- update
v1.16.8 (2020-10-26)
- little cleanup
v1.16.5 (2020-09-25)
- added locale to props
v1.16.4 (2020-09-17)
- Removed `boostMultiplier` and `data-step-max`
v1.15.4 (2020-09-14)
- updated
v1.14.2 (2020-09-14)
- added more examples
v1.14.1 (2020-09-08)
- Styling with templates
v1.13.20 (2020-08-27)
- Fixed issue with hidden attribute
v1.13.17 (2020-08-02)
- Replaced + and - with the HTML entities + and −
v1.13.16 (2020-07-28)
- Bugs fixed
v1.13.11 (2020-07-21)
- JS Update
v1.13.10 (2020-07-20)
- Fixed "Invalid regular expression" error when thousandSeparator is empty string
v1.13.6 (2020-06-06)
- Allows to destroy the instance
v1.13.4 (2020-04-02)
- Package update
v1.13.3 (2019-12-18)
- Allow enter and space button triggers
v1.12.7 (2019-10-31)
- Allow enter and space button triggers
This awesome jQuery plugin is developed by shaack. For more Advanced Usages, please check the demo page or visit the official website.











