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

Aruba Cloud - Virtual Private Server VPS
0 głosów
187 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,830 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 (256,600 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 (155,140 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ź 329 wizyt
pytanie zadane 29 sierpnia 2017 w JavaScript przez Karol Loczeski Użytkownik (820 p.)
0 głosów
1 odpowiedź 148 wizyt
pytanie zadane 16 października 2022 w HTML i CSS przez jasper93 Obywatel (1,310 p.)
0 głosów
2 odpowiedzi 550 wizyt
pytanie zadane 30 grudnia 2017 w HTML i CSS przez wgnsy123 Początkujący (410 p.)

93,335 zapytań

142,330 odpowiedzi

322,412 komentarzy

62,670 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...