Kalkulator krok 2: zamiana na liczby

Formularze: odczyt pól i obliczenia - JavaScript na stronach WWW (HTML/CSS/JS)

Poprawka: tekst zamieniamy na liczbę funkcją `Number` (albo `parseFloat`). Pole liczbowe ma też właściwość `valueAsNumber`, która od razu daje liczbę, a dla pustego pola `NaN`. Wynik to teraz 5. Pusty albo błędny wpis daje `NaN`, więc program to sprawdza (`Number.isNaN`) i prosi o liczby.

<!DOCTYPE html>
<html lang="pl">
<head>
  <meta charset="utf-8">
  <title>Kalkulator</title>
  <style>
    body { font-family: sans-serif; max-width: 36em; line-height: 1.4; }
    input, select, button, textarea { font: inherit; padding: 0.2em 0.4em; }
    table { border-collapse: collapse; }
    th, td { border: 1px solid #94a3b8; padding: 0.2em 0.6em; }
  </style>
</head>
<body>
  <p>
    <input id="a" type="number" value="2">
    <input id="b" type="number" value="3">
    <button id="add">Dodaj</button>
  </p>
  <p id="result">Wynik: ?</p>
  <script>
    document.getElementById('add').addEventListener('click', () => {
      const a = Number(document.getElementById('a').value);
      const b = document.getElementById('b').valueAsNumber;
      const result = document.getElementById('result');
      if (Number.isNaN(a) || Number.isNaN(b) || document.getElementById('a').value === '') {
        result.textContent = 'Wpisz dwie liczby';
      } else {
        result.textContent = 'Wynik: ' + (a + b);
      }
    });
  </script>
</body>
</html>

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu JavaScript na stronach WWW·Zaloguj się, aby zapisać postęp na koncie.