drinks-manager/static/js/custom_number_input.js

30 lines
No EOL
1.2 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
);
}
}