drinks-manager/app/static/js/custom_number_input.js

23 lines
1.1 KiB
JavaScript

(() => {
document.addEventListener("DOMContentLoaded", () => {
// get all customnumberinput Elements
let customNumberInputElements = document.getElementsByClassName("customnumberinput");
// Add Event Handler to the elements of the customnumberinputs
[...customNumberInputElements].forEach(element => {
// number input
let numberFieldElement = element.getElementsByClassName("customnumberinput-field")[0];
// minus button
element.getElementsByClassName("customnumberinput-minus")[0].addEventListener("click", () => alterCustomNumberField(numberFieldElement, -1));
// plus button
element.getElementsByClassName("customnumberinput-plus")[0].addEventListener("click", () => alterCustomNumberField(numberFieldElement, +1));
})
})
function alterCustomNumberField(numberFieldElement, n) {
numberFieldElement.value = Math.min(
Math.max(
(parseInt(numberFieldElement.value) + n), numberFieldElement.min || Number.MIN_VALUE
),
numberFieldElement.max || Number.MAX_VALUE
);
}
})();