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

Wypisywanie liczba na ekran JavaScript

VPS Starter Arubacloud
0 głosów
1,377 wizyt
pytanie zadane 23 kwietnia 2019 w JavaScript przez xanter Nowicjusz (120 p.)
edycja 24 kwietnia 2019 przez xanter

Witam. Siedząc na drugim odcinku JavaScript u pana Zelenta chciałem aby skrypt wypisywał liczby od największej do najmniejszej i odwrotnie, aby napisał, że liczba w dwóch okienkach jest taka sama oraz, że wprowadzone dane np. w pole1 nie są liczbami. Niestety to co kiedyś zajmowało mi dosłownie 20 sekund okazuje się być na wieczór moją irytacją. Co jest z moim kodem nie tak, że gdy próbuje dodać kolejne else if z isNaN, że liczba1 nie jest liczbą to cały skrypt się psuje? 

<!DOCTYPE HTML>
<html lang="pl">
<head>
    <meta charset="utf-8" />
    <script type="text/javascript">
    
    function wypisz()
    {
        var liczba1 = document.getElementById("pole1").value;
        var liczba2 = document.getElementById("pole2").value;
        var napis = "";
        
        for(i=liczba1; i<=liczba2; i++)
        {
            napis = napis + i + " ";
            document.getElementById("wynik").innerHTML = napis;
        }
        
        if(liczba1>liczba2)
        {
            for(i=liczba1; i>=liczba2; i--)
            {
                napis = napis + i + " ";
                document.getElementById("wynik").innerHTML = napis;
            }
            
        }
        
        else if (liczba1 == liczba2) 
        {
            document.getElementById("wynik").innerHTML = "liczby są równe";
        }
        
        else if(isNaN(liczba1))
        {
            document.getElementById("wynik").innerHTML = "lewe pole nie posiada liczby";
        }
        
    }
    
    </script>
    
</head>
<body>

<input type="text" id="pole1" />
<input type="text" id="pole2" />
<input type="submit" value="Pokaż" onclick="wypisz()" />
<div id="wynik"></div>

</body>
</html>

 

komentarz 24 kwietnia 2019 przez xanter Nowicjusz (120 p.)
edycja 24 kwietnia 2019 przez xanter

Poprawiłem kod, na aktualnym poziome działa. Chciałbym do niego dodać warunek oba pola nie posiadają znaków. Jak to zrobić by nie rozkraczyć kodu? Ewentualnie jak go uprościć?

<!DOCTYPE HTML>
<html lang="pl">
<head>
    <meta charset="utf-8" />
 
    <script type="text/javascript">
    
    function wypisz()
    {
        var liczba1 = document.getElementById("pole1").value;
        var liczba2 = document.getElementById("pole2").value;
        var napis = "";
        
        for(i=liczba1; i<=liczba2; i++)
        {
            napis = napis + i + " ";
            document.getElementById("wynik").innerHTML = napis;
        }
        
        for(i=liczba1; i>=liczba2; i--)
        {
            napis = napis + i + " ";
            document.getElementById("wynik").innerHTML = napis;
        }
        
        if((isNaN(liczba1)) && (isNaN(liczba2)))
        {
            document.getElementById("wynik").innerHTML = "Obie wartości nie są liczbami.";
        }
         
        else if(isNaN(liczba1))
        {
            document.getElementById("wynik").innerHTML = "Wartość po lewej nie jest liczbą.";
        }
        
        else if(isNaN(liczba2))
        {
            document.getElementById("wynik").innerHTML = "Wartość po prawej nie jest liczbą.";
        }
        
        else if(liczba1==liczba2)
        {
            document.getElementById("wynik").innerHTML = "Wartości są takie same";
        }
        
    }
    
    </script>
    
</head>
<body>

<input type="text" id="pole1" />
<input type="text" id="pole2" />
<input type="submit" value="Pokaż" onclick="wypisz()" />
<div id="wynik"></div>

</body>
</html>

 

2 odpowiedzi

+1 głos
odpowiedź 24 kwietnia 2019 przez Katetka Nowicjusz (180 p.)
else if(isNaN(liczba1)  )

Nawiasa brakowalo z tego co widze, nie masz konsoli gościu?

komentarz 24 kwietnia 2019 przez xanter Nowicjusz (120 p.)
Faktycznie gosciu brakowalo nawiasa, poprawilem to, poniewaz nie w tym lezy blad. Zapomnialem go dodac przed zadaniem pytania, wczesniej tam byl i dalej to samo.
0 głosów
odpowiedź 24 kwietnia 2019 przez pablop76 VIP (123,060 p.)
Na początku sprawdź czy user wpisał numery. Jeżeli tak sprawdź, która jest większa. Jeżeli są równe pokaż komunikat. Jeżeli nie wykonaj pętlę i wypisz ciągi.

W Twoim kodzie brak logiki. Robisz pętlę nie wiedząc nawet czy wartości to liczby. Pamiętaj, że value zawsze zwraca stringa. Więc może przekonwertować go na starcie.

Podobne pytania

0 głosów
1 odpowiedź 6,368 wizyt
0 głosów
1 odpowiedź 3,387 wizyt
pytanie zadane 22 sierpnia 2017 w JavaScript przez Angie Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 534 wizyt

92,453 zapytań

141,262 odpowiedzi

319,086 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...