• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Gdzie jest błąd ? (JS)

Object Storage Arubacloud
0 głosów
254 wizyt
pytanie zadane 15 września 2018 w JavaScript przez Felix Obywatel (1,100 p.)
<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <input id="pole1" type="number">
    <input id="pole2" type="number">
    <input value="wynik" type="button" class="btn" onclick="suma()">
    <div class="wynik">0</div>
    <script>
        let pole1 = document.getElementById("pole1").value;
        let pole2 = document.getElementById("pole2").value;
        let wynik = document.querySelector('.wynik');
        


        function suma(){
            if(pole1 === ''|| pole2 === ''){
                wynik.textContent= 'puste';
            }

            else{
                let suma = pole1 + pole2;

                wynik.textContent = suma;
            }
        }


    
    

    </script>
</body>
</html>

Powie mi ktoś w czemu kod nie działa?

1 odpowiedź

+1 głos
odpowiedź 15 września 2018 przez Grzegorz :> Dyskutant (8,050 p.)
wybrane 16 września 2018 przez Felix
 
Najlepsza

Musisz sprawić, by funkcja sprawdziła wartości zmiennych po kliknięciu w przycisk. W kodzie, który podałeś, nieważne co byś wpisał w inputy, ich wartość będzie pusta, a to dlatego, że sprawdzana jest zaraz po załadowaniu strony :^)

Wystarczy, że wrzucisz te zmienne do funkcji:

function suma() {
            let pole1 = document.getElementById("pole1").value;
            let pole2 = document.getElementById("pole2").value;
            let wynik = document.querySelector('.wynik');
            if ((pole1 === '') || (pole2 === '')) {
                wynik.textContent = 'puste';
            } else {
                let suma = Number(pole1) + Number(pole2);

                wynik.textContent = suma;
            }
        }

Musisz również wskazać przeglądarce, że wartości, na których operujesz są liczbami, bo z automatu traktuje je jako tekst.
Robi się to jak zauważyłeś dodaniem 'Number(zmienna)', możesz również użyć 'parseInt(zmienna)' lub w przypadku liczb zmiennoprzecinkowych 'parseFloat(zmienna)'

Pozdrawiam :>

komentarz 16 września 2018 przez Felix Obywatel (1,100 p.)
Kurde tyle czasu nad tym siedziałem i nie mogłem znaleźć błędu. Dzięki :)
komentarz 16 września 2018 przez MrxCI Dyskutant (8,260 p.)
Mysle ze za odpowiedź należy się danie "najlepszej"

Podobne pytania

0 głosów
1 odpowiedź 844 wizyt
pytanie zadane 2 lutego 2020 w Python przez Laurencjusz Kocik Użytkownik (540 p.)
0 głosów
1 odpowiedź 2,412 wizyt
pytanie zadane 2 września 2018 w C i C++ przez Archeon Początkujący (480 p.)
0 głosów
2 odpowiedzi 347 wizyt
pytanie zadane 21 maja 2020 w JavaScript przez Dark Web Nowicjusz (190 p.)

92,568 zapytań

141,420 odpowiedzi

319,617 komentarzy

61,954 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...