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

JavaScript błąd w kodzie

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
279 wizyt
pytanie zadane 3 czerwca 2016 w JavaScript przez Skory Początkujący (290 p.)

Wziąłem się za kurs JavaScript Pana Mirosława i na drugim odcinku poległem.. Może mi ktoś wskazać błąd? (liczba się nie wyświetla)

 

<script>

function sprawdz()
    
    {
        var liczba = document.getElementById("pole").value;
        document.write(liczba);
        if (liczba>0) document.getElementById("wynik").innerHTML="dodatnia";
        else if (liczba<0) document.getElementById("wynik").innerHTML="ujemna";
        else document.getElementById("wynik").innerHTML="zero";
    }

</script>

...

<body>

    <input type="text" id="pole" />
    <input type="submit" value="Sprawdź" onclick="sprawdz()" />
    <div id="wynik"></div>
</body>

 

2 odpowiedzi

+1 głos
odpowiedź 3 czerwca 2016 przez ScriptyChris Mędrzec (190,190 p.)
edycja 3 czerwca 2016 przez ScriptyChris

Proponuję:

  • zrezygnować z document.write();
  • zamiast <input type="submit"> wstawić po prostu <button>
  • użyć EventListener zamiast onclick
  • dla pewności dodać parsowanie z input.value na Number

https://www.w3.org/TR/html5/single-page.html#document.write()

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

Całośćhttp://codepen.io/ChrissP92/pen/jrPrmZ?editors=1010

komentarz 3 czerwca 2016 przez Skory Początkujący (290 p.)
Bez zmian.. :) najpierw próbowałem zrozumieć Twoje rady - nic. Później skierowałem się do linku - nic. A jak chciałem wkleić Twojego gotowca to okazało się, że też nic to nie da. W CodePen Twój kod działa, nie wiem tylko dlaczego w mojej przeglądarce już nie. Spotkałeś się kiedyś z takim czymś? Może jakieś ustawienia dotyczące JS?
komentarz 3 czerwca 2016 przez ScriptyChris Mędrzec (190,190 p.)

Na codepen Ci nie działa, czy u Ciebie?

Pokaż swój kod. Może źle podpiąłeś JS?

Jeśli w konsoli masz błąd i coś o "undefined", to przenieś skrypt z <head> na koniec <body>

komentarz 3 czerwca 2016 przez Skory Początkujący (290 p.)
<!Doctype html>
<html lang="pl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascipt">
	function sprawdz()
     
    {
        function sprawdz()
     
    {
        var liczba = document.getElementById("pole").value;
        document.write(liczba);
        if (liczba>0) document.getElementById("wynik").innerHTML="dodatnia";
        else if (liczba<0) document.getElementById("wynik").innerHTML="ujemna";
        else document.getElementById("wynik").innerHTML="zero";
    }
    }
</script>
</head>
<body>

	<body>
    <input type="text" id="pole" />
    <input type="submit" value="Sprawdź" onclick="sprawdz()" />
    <div id="wynik"></div>
</body>
</body>
</html>

 

komentarz 3 czerwca 2016 przez Skory Początkujący (290 p.)
Oczywiście poprawione.. :)

<script type="text/javascipt">
	function sprawdz()
          
    {
        var liczba = document.getElementById("pole").value;

 

komentarz 3 czerwca 2016 przez ScriptyChris Mędrzec (190,190 p.)

Ale nie naniosłeś żadnych poprawek, o których napisałem...

Poza tym masz dwa razy otwierający tag <body>

komentarz 3 czerwca 2016 przez Skory Początkujący (290 p.)
Chodziło mi właśnie o poprawki dotyczące <body> i function.
komentarz 3 czerwca 2016 przez Skory Początkujący (290 p.)
Nie wiem jak to jest, ale gdy usunąłem całą treść - zrobił się bałagan - i dodaniu kodu na nowo skrypt zaczął działać poprawnie. Myślisz, że może być coś nie tak z edytorem? Piszę w KEDzie, na nim zaczynałem przygodę z HTMLem i tak został.. Pytam, bo chciałbym uniknąć takich sytuacji.
komentarz 3 czerwca 2016 przez ScriptyChris Mędrzec (190,190 p.)

Twój plik HTML powinien wyglądać tak:

<!DOCTYPE HTML>
<html lang = "pl">
<head>
	<meta charset="utf-8">
</head>
<body>
	<input type="text" id="pole" />
	<button id="sprawdz">Sprawdź</button>
	<div id="wynik"></div>
	
	<script>
		document.getElementById('sprawdz').addEventListener('click', function()
		{
		  var liczba = Number(document.getElementById("pole").value);
		  if (liczba > 0)
			document.getElementById("wynik").innerHTML = "dodatnia";
		  else if (liczba < 0)
			document.getElementById("wynik").innerHTML = "ujemna";
		  else
			document.getElementById("wynik").innerHTML = "zero";
		});
	</script>
</body>
</html>

W kwestii edytora - nie wiem :)

komentarz 3 czerwca 2016 przez Skory Początkujący (290 p.)
Zerknę później, w razie czego skopiuje Twój kod i porównam :) dzięki serdeczne za poświęconą uwagę :)
0 głosów
odpowiedź 3 czerwca 2016 przez Michał Kazula Pasjonat (19,540 p.)

U mnie działa. Link

komentarz 3 czerwca 2016 przez Skory Początkujący (290 p.)
Pozazdrościć.. :) nie wiem o co chodzi. bo sprawdzałem na 3 przeglądarkach.. Więc przyczyna leży chyba po mojej stronie

Podobne pytania

0 głosów
2 odpowiedzi 317 wizyt
pytanie zadane 9 października 2018 w JavaScript przez markiewiczg Nowicjusz (170 p.)
0 głosów
2 odpowiedzi 328 wizyt
pytanie zadane 27 grudnia 2017 w JavaScript przez Mateusz8486 Początkujący (330 p.)
0 głosów
3 odpowiedzi 842 wizyt

93,166 zapytań

142,177 odpowiedzi

321,946 komentarzy

62,495 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 918p. - dia-Chann
  2. 902p. - Łukasz Piwowar
  3. 901p. - CC PL
  4. 894p. - Łukasz Eckert
  5. 716p. - Michał Telesz
  6. 664p. - Marcin Putra
  7. 649p. - Michal Drewniak
  8. 641p. - rafalszastok
  9. 641p. - rucin93
  10. 629p. - Piotr Aleksandrowicz
  11. 629p. - Adrian Wieprzkowicz
  12. 621p. - Dawid128
  13. 612p. - Mikbac
  14. 611p. - ksalekk
  15. 606p. - Mariusz Fornal
Szczegóły i pełne wyniki

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!

...