Есть ли решение «Неверное значение»? - PullRequest
0 голосов
/ 05 апреля 2020

Кажется, я не могу найти, почему он показывает ВСЕ, что я что-то набираю. Предполагается, что он отображается только тогда, когда пользователь вводит буквы или отрицательные числа. Это как-то связано с "остальным"?

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Examus</title>
</head>

<body>
  <h1 id="label"></h1>

  <input type="text" id="input">
  <button onclick="checkAge()">Check Age</button>


  <script>
    const checkAge = () => {
      const input = document.getElementById("input");
      const inputValue = parseInt(input.value);

      let output;

      if (Number.isInteger(inputValue) || inputValue < 0) {
        output = "Invalid Value";
        document.getElementById("label").innerText = output;

        return;
      }

      if (inputValue < 14 && inputValue > 0) {
        output = "This person is a KID";
      } else if (inputValue > 14 && inputValue < 18) {
        output = "This person is a TEEN";
      } else if (inputValue > 18 && inputValue < 60) {
        output = "This person is a ADULT";
      } else if (inputValue > 60) {
        output = "This person is a SENIOR";
      } else {
        output = "Invalid Value";
      }

      document.getElementById("label").innerText = output;
    }
  </script>
</body>

</html>

1 Ответ

0 голосов
/ 05 апреля 2020

Бьюсь об заклад, вы хотели сказать: если это не число или здесь меньше нуля:

if( Number.isInteger(inputValue) || inputValue < 0 ) {

Поэтому вам нужно добавить логическую инверсию перед вызовом Number.isInteger:

if( ! Number.isInteger(inputValue) || inputValue < 0 ) {

Кроме того, вам нужно будет использовать оператор «меньше или равно» (<=) или «больше или равно» (>=), поэтому ваше состояние будет включать возраст 14, 18 и 60:

if (!Number.isInteger(inputValue)) {
    document.getElementById("label").innerText = "Invalid Value";
    return;
}

if (inputValue >= 0 && inputValue < 14) {
    output = "This person is a KID";
} else if (inputValue >= 14 && inputValue < 18) {
    output = "This person is a TEEN";
} else if (inputValue >= 18 && inputValue < 60) {
    output = "This person is a ADULT";
} else if (inputValue >= 60) {
    output = "This person is a SENIOR";
} else {
    output = "Invalid Value";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...