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

Przykład z wypisywaniem liczb z kursu z yt

Konkurs Mistrz Programowania
0 głosów
279 wizyt
pytanie zadane 23 września 2015 w JavaScript przez przemek-mtk- Początkujący (390 p.)

Witam, na wstępie pragnę zaznaczyć że jestem świeży i na forum i w technologii JS. Do rzeczy, robiłem sobie kurs pana Mirosława (Kurs JavaScript odc.2 na yt) i napotkałem się na problem przy drugim przykładzie.

//HTML

<input type="text" id="liczba1"/>
<input type="text" id="liczba2"/>
<input type="submit" value="Pokaż!" onclick="pokaz()"/>
<div id="pojemnik"></div>

//JS

function pokaz()
{
	var pole1 = document.getElementById("liczba1").value;
	var pole2 = document.getElementById("liczba2").value;
	var napis = "";
	
	if(pole1<pole2)for(i=pole1;i<=pole2;i++){napis = napis + i +" ";};
	if(pole1>pole2)for(i=pole1;i>=pole2;i--){napis = napis + i +" ";};
	if(pole1==pole2)document.getElementById("pojemnik").innerHTML = "Pola mają taką samą wartość";
	
	document.getElementById("pojemnik").innerHTML = napis;
}

1. Czemu przy pojawieniu się liczby 10 w pierwszym bądź w drugim polu i jakiejkolwiek innej liczby poza liczbami ujemnymi, 0 i 1 w drugim polu funkcja nie wypisuje liczb?

2.Czemu gdy pojawiają się takie same liczy funkcja nie wypisuje mi polecenia o takich samych liczbach?

Pozdrawiam, Przemek.

3 odpowiedzi

+1 głos
odpowiedź 23 września 2015 przez darek_kce Gaduła (3,180 p.)

Witam, w tej postaci kod twój we wszystkich if'ach porównuje typ danych String, który powoduje te błędy.

Jeżeli w trakcie pobierania danych z formularza, poinformujesz JS o tym że to są liczby to będzie działać.

Aby to wykonać możesz np. dodać funkcję parseInt(), która zamieni te stringi na typ Integer:

zamiast

var pole1 = document.getElementById("liczba1").value;
var pole2 = document.getElementById("liczba2").value;
 

 

daj

var pole1 = parseInt(document.getElementById("liczba1").value);
var pole2 = parseInt(document.getElementById("liczba2").value);
 

 

komentarz 24 września 2015 przez przemek-mtk- Początkujący (390 p.)
Jest ok, ale nadal nie rozwiązuje problemu przy tych samych cyfrach. Nie zwraca mi komentarza "Pola mają taką samą wartość".
+1 głos
odpowiedź 25 września 2015 przez Szymek Użytkownik (520 p.)

Zapisz tak:

if(pole1==pole2) { napis = "Pola mają taką samą wartość";}

Twoje rozwiązanie powodowało, że polecenie 

document.getElementById("pojemnik").innerHTML = napis;

nadpisywało to co miało być wyświetlone z 

if(pole1==pole2)document.getElementById("pojemnik").innerHTML = "Pola mają taką samą wartość";

 

komentarz 25 września 2015 przez przemek-mtk- Początkujący (390 p.)
Ok. Działa, dzięki. Jeszcze dużo nauki przede mną.
0 głosów
odpowiedź 23 września 2015 przez Shiro Stary wyjadacz (10,300 p.)

Odpowiedź została usunięta!

Podobne pytania

0 głosów
1 odpowiedź 284 wizyt
pytanie zadane 28 września 2017 w Rozwój zawodowy, nauka, praca przez rice Początkujący (440 p.)
0 głosów
1 odpowiedź 327 wizyt
pytanie zadane 9 lutego 2018 w PHP przez skedar Nowicjusz (150 p.)

93,653 zapytań

142,574 odpowiedzi

323,090 komentarzy

63,170 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

Kursy INF.02 i INF.03
...