Walidacja w funkcji obliczającej obwód, pole i objętość prostopadłościanu

0

Mam problem odnoście dodania do moich funkcji walidacji, która będzie sprawdzała czy w polu input pojawiła się litera lub pusty znak, w tym celu stworzyłem nową funkcję Sprawdź_ponownie, jednak nie wiem jak ją połączyć z moimi funkcjami obliczającymi i wypisującymi pole, obwód i objętość :/

Kod:

<!DOCTYPE html>

<html lang="pl">
<head>
    <meta charset="utf-8" />
</head>
<body style="background: #f8f3e6;">
    <h2> Obliczanie pola, obwodu i objętości prostopadłościanu</h2>
    <form name="przeliczanie">
        <img src="prostopadloscian.gif" alt="prostopadłościan" />
        <br />
        Podaj a: <input type="text" name="a" /><br />
        Podaj b: <input type="text" name="b" /><br />
        Podaj H: <input type="text" name="H" /><br />
        <br />
        Oblicz: <br />
        <button id="obw"> OBWÓD </button> <button id="pole"> POLE </button> <button id="obj"> OBJĘTOŚC </button>
    </form>

    <div id="wynik"></div>
    <script type="text/javascript">
        var a = document.przeliczanie.a;
        var b = document.przeliczanie.b;
        var H = document.przeliczanie.H;
        var o = document.getElementById("obw");
        var p = document.getElementById("pole");
        var v = document.getElementById("obj");

        function obwod(x, y, z) {
            var obw;
            var d = Number(x.value);
            var f = Number(y.value);
            var e = Number(z.value);
            return obw = 4 * d + 4 * f + 4 * e;
        }

        function pole(x, y, z) {
            var pole;
            var d = Number(x.value);
            var f = Number(y.value);
            var e = Number(z.value);
            return pole = 2 * d * f + 2 * f * e + 2 * d * e;
        }

        function obj(x, y, z) {
            var obj;
            var d = Number(x.value);
            var f = Number(y.value);
            var e = Number(z.value);
            return obj = d * e * f;
        }

        function licz_obwod() {
				{
                    document.getElementById("wynik").innerHTML = "<br>Obwód prostopadłościanu jest równy: " + obwod(a,b,H);
                    return false;
                }


        function licz_pole() {
				{
                    document.getElementById("wynik").innerHTML = "<br>Pole prostopadłościanu jest równe: " + pole(a, b, H);
                    return false;
                }

        function licz_objetosc() {
				{
                    document.getElementById("wynik").innerHTML = "<br>Objętość prostopadłościanu jest równa: " + obj(a, b, H);
                    return false;
  
				}


        function Sprawdz_ponownie() {
            if (isNaN(a.value) || isNaN(b.value) || isNaN(H.value)) {
                alert("Wprowadź daną liczbową!");               
                return false;
            }
            else if (a.value < 0 || b.value < 0 || H.value < 0) {
                alert("Podana przez Ciebie liczba jest mniejsza od zera! Podaj większą wartość!");               
                return false;
            }
            else if (a.value == 0 || b.value == 0 || H.value == 0) {
                alert("Zanim obliczysz, uzupełnij wszystkie pola!");               
                return false;
            }
            else {
                sprawdzenie = true;
                return false;
            };
        }

        o.onclick = licz_obwod;
        p.onclick = licz_pole;
        v.onclick = licz_objetosc;
        a.onblur = Sprawdz_ponownie;
        b.onblur = Sprawdz_ponownie;
        H.onblur = Sprawdz_ponownie;


    </script>
</body>
</html>
0

widziałem w niektórych programach metodę z boolem ale nie wiem jak bym miał ją tu zastosować :/

0

Przed wywolaniem funkcji liczenia sprawdz czy input a,b, H jest poprawny.
Funkcja Sprawdz_ponownie() powinna zwracac True albo False jak jest blad. Twoja funkcja zwraca tylko false

To jest dla mnie bez sensu:
a.onblur = Sprawdz_ponownie; - sprawdz po nacisnieciu przycisku

1 użytkowników online, w tym zalogowanych: 0, gości: 1