
Spinner
Enhance a text input for entering numeric values, with plus/minus buttons and up/down arrows key handling.
About
To create spinner
, add attribute data-role="spinner"
to HTML input element.
You must assign role input
to text input input type="text"
.
<input type="text" data-role="spinner">
Spinner step
You can set step for change spinner value with attribute data-step
.
Value can be integer
or float
. If your step is float, you can set a number of digits after dot with attribute data-fixed
.
Step: 10
Step: 0.756, fixed: 4
<p>Step: 10</p>
<input type="text" data-role="spinner" data-step="10">
<p>Step: 0.756, fixed: 4</p>
<input type="text" data-role="spinner" data-step=".756" data-fixed="4">
Min & max values
You can set minimum and maximum values for spinner with attributes data-min-value
and data-max-value
.
Min: -10, Max: 10
<p>Min: -10, Max: 10</p>
<input type="text" data-role="spinner" data-min-value="-10" data-max-value="10">
Buttons position
You can set spinner buttons position with attribute data-buttons-position
.
Default
Left
Right
<p>Default</p>
<input type="text" data-role="spinner" data-buttons-position="default">
<p>Left</p>
<input type="text" data-role="spinner" data-buttons-position="left">
<p>Right</p>
<input type="text" data-role="spinner" data-buttons-position="right">
Options
Option | Data-* | Default | Desc |
---|---|---|---|
step |
data-step |
1 | Step for change spinner value |
plusIcon |
data-plus-icon |
<span class='default-icon-plus'> | Icon for plus button |
minusIcon |
data-minus-icon |
<span class='default-icon-minus'> | Icon for minus button |
buttonsPosition |
data-buttons-position |
default | Spinner buttons position: default, left, right |
defaultValue |
data-default-value |
0 | Default value, used with method toDefault() |
minValue |
data-min-value |
null | Min value for spinner |
maxValue |
data-max-value |
null | Max value for spinner |
fixed |
data-fixed |
0 | The count of numbers after dot |
repeatThreshold |
data-repeat-threshold |
500 | Threshold for auto repeat in ms |
hideCursor |
data-hide-cursor |
false | Hide cursor in input. Important! To change color in this mode, you must overwrite style for input text-shadow: 0 0 0 @dark; |
Events
Event | Data-* | Context | Desc |
---|---|---|---|
onBeforeChange(val) |
data-on-before-change |
input | If this function return false, value can't be changed |
onChange(val) |
data-on-change |
input | |
onPlusClick(curr, request, real) |
data-on-plus-click |
input | |
onMinusClick(curr, request, real) |
data-on-minus-click |
input | |
onArrowUp(curr, request, real) |
data-on-arrow-up |
input | |
onArrowDown(curr, request, real) |
data-on-arrow-down |
input | |
onButtonClick(curr, request, real, 'plus||minus') |
data-on-arrow-down |
input | |
onArrowClick(curr, request, real, 'plus||minus') |
data-on-arrow-click |
input | |
onSpinnerCreate(input) |
data-on-spinner-create |
input |
Methods
You can use methods to interact with input component:
toDefault()
,
val()
,
val(value)
.
disable()
.
enabled()
.
toggleState()
.
var input = $(el).data('taginput');
input.val(100);
input.toDefault();
Customize
You can customize your input with special attributes:
Option | Data-* | Desc |
---|---|---|
clsSpinner |
data-cls-spinner |
Additional classes for spinner. |
clsSpinnerInput |
data-cls-spinner-input |
Additional classes for input element. |
clsSpinnerButton |
data-cls-spinner-button |
Additional classes for spinner buttons. |
clsSpinnerButtonPlus |
data-cls-spinner-button-plus |
Additional classes for spinner plus button. |
clsSpinnerButtonMinus |
data-cls-spinner-button-minus |
Additional classes for spinner minus button. |
<input type="text"
data-role="spinner"
data-cls-spinner-button="fg-white"
data-cls-spinner-button-plus="bg-green"
data-cls-spinner-button-minus="bg-red"
data-cls-spinner-input="bg-light fg-cyan text-bold"
data-plus-icon="<span class='mif-arrow-up'></span>"
data-minus-icon="<span class='mif-arrow-down'></span>"
>