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

Javascript - błąd, pojawiający się tylko przy konkretnych liczbach.

VPS Starter Arubacloud
0 głosów
129 wizyt
pytanie zadane 18 marca 2023 w JavaScript przez Liten Nowicjusz (190 p.)

Witam, robiąc zadanie dodatkowe z odcinka "https://www.youtube.com/watch?v=XJKXlxn9e-g".
napotkałem na pewien problem, i nie wiem jak go rozwiązać. Robię zadanie, w którym po podaniu dwóch liczb program ma wyświetlić mi wszystkie liczby, które są pomiędzy dwoma podanymi łącznie z tymi, które zostały podane. wszystko działa poprawnie, poza tym, że gdy jedna z podanych liczb wynosi między 10-19, 100-199,1000-1999 itd. to program wyświetla tylko liczbę, która została podana jako pierwsza. Co ciekawe problem ten nie występuje przy liczbach ujemnych.

Oto kod JS :

document.querySelector("#btn").addEventListener("click", wypisz);
function wypisz(){
    let num1 = document.querySelector("#input1").value;
    let num2 = document.querySelector("#input2").value;
    let napis = "";
    if(num1 < num2){
        for(i = num1; i <= num2; i++) {
            napis = napis + i + ", ";
            console.log(napis)
        }
    }else if(num1 > num2){
        for(i = num1; i >= num2; i--){
            napis = napis + i + ", ";
        }
    }else if(num1 == num2){
        napis = "Obie liczby są sobie równe";
    }
    if(isNaN(num1)){
        napis = "Pole nr1 zawiera niepoprawną wartość"
    }else if(isNaN(num2)){
        napis = "Pole nr 2 zawiera niepoprawną wartość"
    }
    if(isNaN(num1),isNaN(num2)){
        napis = "Oba pola mają niepoprawną wartość"
    }
    
    document.querySelector("#result").innerHTML = napis;
}

 

Oto kod HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="main.css">
</head>
<body>
    <!--
        CELE:
        Stworzyć dwa pola tekstowe, które po kliknięciu przycisku obok wypiszą wszystkie liczby pomiędzy dwoma podanymi.
        Skrypt ma odpowiedzieć prawidłowym ciągiem, nawet pomimo że podamy najpierw większą liczbę a potem większą.
        Jeśli obie liczby będą miały taką samą wartość to dostaniemy informacje o tym.
        Skrypt ma wyświetlić informacje, jeżeli jedna z danych nie jest liczba, oraz wskazać która. Jeśli obie dane nie będą liczbami to to powiedzieć.
    -->
    <input type="text" id="input1">
    <input type="text" id="input2">
    <input type="submit" id="btn">
    <div id="result">Wynik:</div>
    <script src="main.js"></script>
</body>
</html>

 

komentarz 18 marca 2023 przez Velta Maniak (51,890 p.)
Dlaczego formularz przyjmuje wartości tekstowe zamiast liczbowych?
komentarz 18 marca 2023 przez Liten Nowicjusz (190 p.)
edycja 18 marca 2023 przez Liten
Bo miałem zadanie, żeby kod informował użytkownika, jeśli dane nie będą liczbami, więc bez sensu byłoby stosować inputy o wartościach liczbowych :P. Co prawda informowanie o niepoprawnej wartości nie działa jeszcze idealnie, ale pracuję nad tym.
komentarz 19 marca 2023 przez VBService Ekspert (251,210 p.)

@Liten,  laugh

... nawet pomimo że podamy najpierw większą liczbę a potem większą.

1 odpowiedź

+1 głos
odpowiedź 18 marca 2023 przez tangarr Mędrzec (154,780 p.)
wybrane 18 marca 2023 przez Liten
 
Najlepsza
Jak @Velta zauważył twoje zmienne zawierają dane tekstowe.
Najpierw sprawdzaj czy zmienne zawierają liczby. Potem przekonwertuj zmienne do wartości liczbowych.
komentarz 18 marca 2023 przez Liten Nowicjusz (190 p.)
A w jaki sposób mogę je przekonwertować ?
komentarz 18 marca 2023 przez Liten Nowicjusz (190 p.)
Dzięki !

Podobne pytania

0 głosów
1 odpowiedź 244 wizyt
pytanie zadane 29 sierpnia 2017 w JavaScript przez Karol Loczeski Użytkownik (820 p.)
0 głosów
1 odpowiedź 98 wizyt
pytanie zadane 16 października 2022 w HTML i CSS przez jasper93 Obywatel (1,310 p.)
0 głosów
2 odpowiedzi 341 wizyt
pytanie zadane 30 grudnia 2017 w HTML i CSS przez wgnsy123 Początkujący (410 p.)

92,453 zapytań

141,262 odpowiedzi

319,087 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!

...