Число ограничивает после 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;
                }
        }
    });
});
→ Ссылка