• 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 PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
55 wizyt
pytanie zadane 4 dni temu 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 4 dni temu przez Velta Maniak (50,910 p.)
Dlaczego formularz przyjmuje wartości tekstowe zamiast liczbowych?
komentarz 4 dni temu przez Liten Nowicjusz (190 p.)
edycja 4 dni temu 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 3 dni temu przez VBService Ekspert (227,150 p.)

@Liten,  laugh

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

1 odpowiedź

+1 głos
odpowiedź 4 dni temu przez tangarr Mędrzec (150,800 p.)
wybrane 4 dni temu 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 4 dni temu przez Liten Nowicjusz (190 p.)
A w jaki sposób mogę je przekonwertować ?
komentarz 4 dni temu przez Liten Nowicjusz (190 p.)
Dzięki !

Podobne pytania

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

90,823 zapytań

139,496 odpowiedzi

313,568 komentarzy

60,316 pasjonatów

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...