Mam ten JavaScript:

function Pythag1(){
var inputa = document.getElementById("input1");
var a = inputa.value;
var inputb = document.getElementById("input2");
var b = inputb.value;
if (b == "" || c == "" || isNaN(c) || isNaN(b)){
    alert("Try again!");
    }
else{
    alert("C=" + Math.sqrt((a*a) + (b*b)));
    }
}
/*above does not work*/


function Pythag2(){
var inputbc = document.getElementById("input3");
var sb = inputb.value;
var inputc = document.getElementById("input4");
var c = inputc.value;
if (sb == "" || c == "" || isNaN(c) || isNaN(sb) || (sb > c)){
    alert("Try again!");
    }
else{
    alert("A=" + Math.sqrt((c*c) - (sb*sb)));
    }
}

I HTML:

<h3 style="text-align:left;">Pythagorean Theorem 1</h3>
<form>
A=<input type="text" id="input1" value="" name="aval" /><br />
B=<input type="text" id="input2" value="" name="bval" /><br />
<input type="submit" onclick="Pythag1()" />
</form>
<h3 style="text-align:left;">Pythagorean Theorem 2</h3>
<form>
B=<input type="text" id="input3" value="" name="bval2" /><br />
C=<input type="text" id="input4" value="" name="cval" /><br />
<input type="submit" onclick="Pythag2()" />
</form>

Działa funkcja Pythag2(), ale Pythag1() nie. Jakieś pomysły?

0
please delete me 10 listopad 2011, 00:29

3 odpowiedzi

Najlepsza odpowiedź

Zmienna {X0}} Używasz w stanie if nie wydaje się być zdefiniowany w dowolnym miejscu. Może miałeś na myśli:

function Pythag1() {
    var inputa = document.getElementById("input1");
    var a = parseFloat(inputa.value);
    var inputb = document.getElementById("input2");
    var b = parseFloat(inputb.value);
    if (isNaN(a) || isNaN(b)) {
        alert("Try again!");
    } else {
        alert("C=" + Math.sqrt((a * a) + (b * b)));
    }
}
2
Darin Dimitrov 9 listopad 2011, 20:31

W PythaG1 () zmień:

if (b == "" || c == "" || isNaN(c) || isNaN(b)){
    alert("Try again!");
    }
else{
    alert("C=" + Math.sqrt((a*a) + (b*b)));
    }
}

Do:

if (a == "" || b == "" || isNaN(a) || isNaN(b)){
    alert("Try again!");
    }
else{
    alert("C=" + Math.sqrt((a*a) + (b*b)));
    }
}

(C nie został zadeklarowany w PythaG1 ())

1
Geekswordsman 9 listopad 2011, 20:31

Ponieważ nie ma zmiennej c w Pythag1().

Jeśli używasz nowoczesnej przeglądarki (IE9, FF4 +), możesz łatwo złapać to w konsoli debugowania. Kiedyś był bólem, aby debugować JavaScript, ale teraz jest bardzo łatwy.

1
James Johnson 9 listopad 2011, 20:32