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

JavaScript - liczby z zakresu PROMPT

Object Storage Arubacloud
0 głosów
5,794 wizyt
pytanie zadane 29 grudnia 2016 w JavaScript przez Fiduciam Nowicjusz (200 p.)
edycja 29 grudnia 2016 przez ScriptyChris

Chcialbym aby program wypisywal liczby z zakresu co jest zle?
 

<!doctype html>
<html>
    <head>
        <title>Liczby całkowite z zakresu</title>
        <meta charset="utf-8" />
    </head>
<body>
        <script>
            function x()
            {
        var x=parseInt(prompt("Podaj liczbę początkową").value)
        var y=parseInt(prompt("Podaj liczbę końcową").value)
                if (x<=y){
                for (var i=x;i<=y;i++){
                    document.getElementById('wynik').innerHTML = x;
                        x++;
                }
                }
                }
        </script>
            <form>
                <input type=submit onClick="x()" value="Podaj">
                <output id="wynik"></output>
            </form>
 </body>
</html>

 

komentarz 29 grudnia 2016 przez miro Pasjonat (23,870 p.)
Dlaczego ten post ma tag java?

2 odpowiedzi

+2 głosów
odpowiedź 30 grudnia 2016 przez Roger Użytkownik (680 p.)
wybrane 31 grudnia 2016 przez Fiduciam
 
Najlepsza
var x=parseInt(prompt("Podaj liczbę początkową").value)

Występuje tutaj błąd parsowania. Musisz usunąć value, bo w zmiennej x po wynonaniu metody parseInt masz wartość NaN.

document.getElementById('wynik').innerHTML += x

Musi być +=, żeby Ci dodał kolejne elementy do innerHTML. W twoim starym kodzie nadpisywał istniejącą wartość.

<input type=button onClick="x()" value="Podaj">

Typ powinieneś zmienić z submit na button w przeciwnym wypadku w uproszczeniu "przeładuje" Ci stronę. Bardziej szczegółowe informację możesz znaleźć w linku poniżej:

http://stackoverflow.com/questions/290215/difference-between-input-type-button-and-input-type-submit

Poprawny kod wygląda następująco:

<!doctype html>
<html>
<head>
    <title>Liczby całkowite z zakresu</title>
    <meta charset="utf-8" />
</head>
<body>
<script>
    function x()
    {
		document.getElementById('wynik').innerHTML = "";
	
        var x=parseInt(prompt("Podaj liczbę początkową"))
        var y=parseInt(prompt("Podaj liczbę końcową"))
        if (x<=y){
            for (var i=x;i<=y;i++){
                document.getElementById('wynik').innerHTML += x;
                x++;
            }
        }
    }
</script>
<form>
    <input type=button onClick="x()" value="Podaj">
    <output id="wynik"></output>
</form>
</body>
</html>

 

komentarz 31 grudnia 2016 przez Fiduciam Nowicjusz (200 p.)
Czyli value dodaje tylko jesli wartosc pobieram z formularza, a tu jest nie potrzebne bo biore ja z prompta? + moglbys mi jeszcze powiedziec jak zrobic zeby mi te liczby po przecinku wypisywal?
komentarz 1 stycznia 2017 przez Roger Użytkownik (680 p.)
edycja 1 stycznia 2017 przez Roger

Najprościej to po prostu:

document.getElementById('wynik').innerHTML += x + ",";

Oczywiście wypisze Ci za dużo o jeden przecinek (na końcu), ale podsunąłem Ci rozwiązanie.

Taka uwaga na przyszłość. Ogólnie to nie powinieneś mieszać języka JavaScript z HTML, bo to "zła praktyka". Chodzi tutaj o ten fragment kodu:

<input type=button onClick="x()" value="Podaj">

Zapoznaj się z poniższym linkiem, to wstępnie zrozumiesz o co chodzi:

http://stackoverflow.com/questions/5871640/why-is-using-onclick-in-html-a-bad-practice

Rozwiązaniem tego problemu jest używanie np.:
https://developer.mozilla.org/pl/docs/Web/API/Element/addEventListener

0 głosów
odpowiedź 29 grudnia 2016 przez Fenix Nałogowiec (26,750 p.)
Utwórz zmienną przed pętlą , dodawaj wynik do tej zmiennej (+=) a dopiero po wykonaniu całej pętli dodaj to do jako InnerText.
komentarz 29 grudnia 2016 przez Fiduciam Nowicjusz (200 p.)

Tylko chodzi o to zeby wypisal te liczby np jak dam zakres 2 do 6 to 2,3,4,5,6 wypisze

(I tak to co mi kazales zrobic srednio dziala)

Wpadlem na pomysl zeby to tak zapisac:

<!doctype html>
<html>
	<head>
		<title>Liczby całkowite z zakresu</title>
		<meta charset="utf-8" />
	</head>
<body>
		<script>
function x()
{
		var x=parseInt(prompt("Podaj liczbę początkową").value)
		var y=parseInt(prompt("Podaj liczbę końcową").value)
		var wynik;
if(x<y){
		for (var i=x;i<=y;i++){
		document.getElementById('wynik').innerText = i;
}
}
}			
		</script>
			<form>
				<input type=submit onClick="x()" value="Podaj">
				<output id="wynik"></output>
			</form>
 </body>
</html>		

 

ale i tak nie dziala :C

 

Podobne pytania

+1 głos
2 odpowiedzi 241 wizyt
0 głosów
2 odpowiedzi 449 wizyt
pytanie zadane 27 grudnia 2016 w Matematyka, fizyka, logika przez qlucha Obywatel (1,790 p.)
0 głosów
1 odpowiedź 2,007 wizyt

92,549 zapytań

141,392 odpowiedzi

319,517 komentarzy

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

...