Число ограничивает после 2 нулей
Как мне решить проблему с ограничением числа после 2 нулей, для примера доступное число для ввода 5000, а максимум ввести даёт только 500, вот мой код:
let display = document.querySelector(".display");
let buttons = Array.from(document.querySelectorAll(".button"));
const balanceDisplay = document.getElementById("balancedisplay");
buttons.map((button) => {
button.addEventListener("click", (e) => {
switch (e.target.innerText) {
case "X":
display.innerText = "0";
break;
case "1":
display.innerText = Number.parseInt(display.innerText) + 1;
if (display.innerText >= balanceDisplay.innerText) {
display.innerText = Number.parseInt(display.innerText) - 1;
}
break;
case "2":
display.innerText = Number.parseInt(display.innerText) + 2;
if (display.innerText >= balanceDisplay.innerText) {
display.innerText = Number.parseInt(display.innerText) - 2;
}
break;
case "5":
display.innerText = Number.parseInt(display.innerText) + 5;
if (display.innerText >= balanceDisplay.innerText) {
display.innerText = Number.parseInt(display.innerText) - 5;
}
break;
case "10":
display.innerText = Number.parseInt(display.innerText) + 10;
if (display.innerText >= balanceDisplay.innerText) {
display.innerText = Number.parseInt(display.innerText) - 10;
}
break;
case "50":
display.innerText = Number.parseInt(display.innerText) + 50;
if (display.innerText >= balanceDisplay.innerText) {
display.innerText = Number.parseInt(display.innerText) - 50;
}
break;
case "100":
display.innerText = Number.parseInt(display.innerText) + 100;
if (display.innerText >= balanceDisplay.innerText) {
display.innerText = Number.parseInt(display.innerText) - 100;
}
break;
default:
if (display.innerText === "") {
display.innerText = e.target.innerText;
} else {
display.innerText += e.target.innerText;
}
}
});
});
function save_balance() {
const numvar = window.prompt("Введите желаемое число");
window.localStorage.setItem('z', numvar);
}
function balance() {
const savedNumber = window.localStorage.getItem('z');
balanceDisplay.innerText = savedNumber || "0.00";
}
balance();
Ответы (1 шт):
Автор решения: Tytenok
→ Ссылка
Ваш код ограничивает ввод числа таким образом, что если число в display.innerText
превышает или равно числу в balanceDisplay.innerText
, то оно уменьшается на значение кнопки.
buttons.map((button) => {
button.addEventListener("click", (e) => {
let increment = parseInt(e.target.innerText);
let currentDisplayValue = parseInt(display.innerText);
let newDisplayValue = currentDisplayValue + increment;
// Обновляем display только если новое значение меньше или равно максимально допустимому
if (newDisplayValue <= parseInt(balanceDisplay.innerText)) {
display.innerText = newDisplayValue;
}
switch (e.target.innerText) {
case "X":
display.innerText = "0";
break;
default:
if (display.innerText === "") {
display.innerText = e.target.innerText;
} else if (newDisplayValue > parseInt(balanceDisplay.innerText)) {
// Если новое значение превышает максимум, не добавляем его
display.innerText = currentDisplayValue;
} else {
display.innerText = newDisplayValue;
}
}
});
});