Witam, zaczynam przygodę z JavaScriptem, więc problem wydaje się być banalny, ale nie do końca go rozumiem. Chodzi o to, że w funkcji pobieram 2 dane z formularza (w założeniu liczby) i przypisuję je do zmiennych liczba1 i liczba2, a następnie w "ifach" je porównuję. I tutaj pojawia się problem. Jeśli, np. w pierwszym inpucie wpiszę, :"5", a w drugim :"10" to wykonują się instrukcje z if (liczba1>=liczba2). Podobnie jest, kiedy w inputach wpiszę ciąg znaków zamiast liczby. Samo porównanie raczej działa dobrze, bo gdy nie pobierałem danych z inputów do zmiennych, tylko od razu im przypisywałem wartości to działało dobrze. Podejrzewam w tym przypadku funckję getElementById(). Mógłby ktoś wyjaśnić o co chodzi, dlaczego przy pobieraniu danych z inputów, wychodzą wyniki, że 5 jest większe od 10? Jak trochę przeanalizowałem przykłady jakie mu wysyłałem to wydaje się jakby porównywał pierwsze cyfry do siebie (tak działa chyba porównywanie zmiennych string(?), jeśli coś takiego w ogóle jest), w tym przypadku '5' i '1' i na tej podstawie stwierdzał, że 5 jest większe od 10, bo '5' jest większe od '1'. Dodam jeszcze tylko, że zadanie pochodzi z odc. 2 kursu pana Zelenta, i po pobraniu jego kodu i wypróbowaniu na tych samych przykładach efekt jest ten sam. Co jeszcze bardziej mnie zastanawia. Cały kod poniżej:
<!DOCTYPE HTML />
<html lang="pl">
<head>
<meta charset="utf-8">
<title>Część druga drugiego odcinka JavaScript</title>
<script type="text/javascript">
function pokaz()
{
var liczba1;
var liczba2;
var napis="";
liczba1 = document.getElementById("liczba1").value;
liczba2 = document.getElementById("liczba2").value;
if (liczba1>=liczba2)
{
document.getElementById("odpowiedz").innerHTML = "Liczba podana w polu po lewej stronie musi być mniejsza od tej podanej w polu po prawej stronie";
}
else if (liczba1<liczba2)
{
for (i=liczba1; i<=liczba2; i++)
{
napis = napis + i + " "
}
document.getElementById("odpowiedz").innerHTML = napis;
}
else
{
document.getElementById("odpowiedz").innerHTML = "Nie rozumiem! Możesz podać liczby w obu polach?"
}
}
</script>
</head>
<body>
<h3>Podaj 2 liczby w polach poniżej, a ja pokażę wszystkie liczby znajdujące się pomiędzy nimi.<br /> Pamiętaj, żeby tą mniejszą podać w polu po lewej stronie</h3>
<input type="text" id="liczba1" />
<input type="text" id="liczba2" />
<input type="submit" id="pokaz" value = "Pokaż" onclick="pokaz()" />
<div id="odpowiedz"> </div>
</body>
</html>