• 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.

Object Storage Arubacloud
0 głosów
130 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 (52,010 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 (252,740 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ź 250 wizyt
pytanie zadane 29 sierpnia 2017 w JavaScript przez Karol Loczeski Użytkownik (820 p.)
0 głosów
1 odpowiedź 101 wizyt
pytanie zadane 16 października 2022 w HTML i CSS przez jasper93 Obywatel (1,310 p.)
0 głosów
2 odpowiedzi 355 wizyt
pytanie zadane 30 grudnia 2017 w HTML i CSS przez wgnsy123 Początkujący (410 p.)

92,551 zapytań

141,400 odpowiedzi

319,531 komentarzy

61,938 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!

...