Demonstrating TouchSpin compatibility with Bootstrap 5
This demo showcases Bootstrap TouchSpin working with Bootstrap 5.3.0, featuring:
input-group-text elements$("input[name='demo1']").TouchSpin();
$("input[name='demo2']").TouchSpin({
prefix: '$',
postfix: '.00',
min: 0,
max: 1000
});
$1,234abc or 1000.5 then press Enter / blur / use arrows.
Value will normalize and format to $1,234.50.
const before = (raw) => (raw ?? '').replace(/[^\d\.\-]/g, '');
const after = (numStr) => {
const n = parseFloat(numStr);
if (!isFinite(n)) return '';
return new Intl.NumberFormat('en-US', {
style: 'currency', currency: 'USD',
minimumFractionDigits: 2, maximumFractionDigits: 2
}).format(n);
};
$("input[name='demo2cb']").TouchSpin({
min: 0, max: 100000, step: 0.5, decimals: 2,
callback_before_calculation: before,
callback_after_calculation: after
});
$("input[name='demo3']").TouchSpin({
min: 0,
max: 10,
step: 0.00001,
decimals: 5
});
<input class="form-control form-control-sm" ...>
$("input[name='demo4']").TouchSpin();
<input class="form-control form-control-lg" ...>
$("input[name='demo5']").TouchSpin();
$("input[name='demo6']").TouchSpin({
verticalbuttons: true,
verticalup: '<i class="bi bi-chevron-up"></i>',
verticaldown: '<i class="bi bi-chevron-down"></i>'
});
<div class="input-group">
<span class="input-group-text">
<i class="bi bi-calculator"></i>
</span>
<input ... class="form-control">
<button class="btn btn-success">
Apply
</button>
...
</div>
$("input[name='demo8']").TouchSpin({
buttondown_class: "btn btn-outline-danger",
buttonup_class: "btn btn-outline-success",
buttondown_txt: '<i class="bi bi-dash-lg"></i>',
buttonup_txt: '<i class="bi bi-plus-lg"></i>'
});
$("input[name='demo9']").TouchSpin({
buttondown_class: "btn btn-info",
buttonup_class: "btn btn-warning",
prefix: "Qty:",
postfix: " items"
});
<div class="input-group input-group-lg">
<span class="input-group-text">$</span>
<input ... class="form-control">
<span class="input-group-text">.00</span>
</div>
<div class="form-floating">
<input class="form-control" placeholder="Enter value">
<label>Floating Label</label>
</div>
$("input[name='demo11']").TouchSpin({
min: 0,
max: 100,
step: 5
});
$("input[name='demo12']").TouchSpin({
min: 0,
max: 50000,
step: 25,
booster: true,
boostat: 2,
maxboostedstep: 2500,
postfix: " GB"
});
This demo uses the Bootstrap 5 specific build (jquery.bootstrap-touchspin-bs5.js) with optimized input group structure for best performance.