Cześć, to mój pierwszy wpis na tym forum :) Zapoznałem się z jego zawartością, tak samo jak komentarzami pod filmem, ale nie znalazłem odpowiedzi na nurtujące mnie pytania.
Po pierwsze:
Formularz działa poprawnie tylko wtedy, kiedy umieszczę linijkę else if (liczba=="") PRZED linijką z else if (liczba==0). W odwrotnym wypadku - nie działa. Dlaczego?
Jest jakaś zasada pierwszeństwa/kolejności? Czy to w ogóle dobrze rozwiązane zadanie (chodzi mi o optymalny kod, coś bez żadnych "ale")? Dawno temu przerabiałem kurs C++, czy odpowiedzi szukać tam? Będę wdzięczny za wszystkie wskazówki jak to zrobić "zgodnie z zasadami sztuki" :).
Po drugie:
Da się dodać jakąś walidację wpisywania liczb z ułamkami? Jeśli rozdzielamy cyfry ułamka kropką, wszystko działa (0.6, 1.5), ale nie działa, jeśli użyjemy przecinka (0,6 daje wartość "zero" w komunikacie). W Polsce przyjęło się używanie "przecinka" dla rozdzielenia całości od liczb dziesiętnych. Jak to ograć?
--- MÓJ KOD ---
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8" />
<script type="text/javascript" >
function sprawdz()
{
var liczba = document.getElementById("pole").value;
if (liczba>0)
document.getElementById("wynik").innerHTML="dodatnia";
else if (liczba<0)
document.getElementById("wynik").innerHTML="ujemna";
else if (liczba=="")
document.getElementById("wynik").innerHTML="Uzupełnij pole!";
else if (liczba==0)
document.getElementById("wynik").innerHTML="zero";
else
document.getElementById("wynik").innerHTML="Ej, to nie jest liczba. Liczba ma być!";
}
</script>
</head>
<body>
<input type="text" id="pole" />
<input type="submit" value="Sprawdź" onclick="sprawdz()"/>
<div id="wynik"></div>
</body>
</html>