2014-01-30 58 views
0

我是初學者,不明白爲什麼以下顯示爲undefined。Javascript pythagoras函數顯示爲undefined

以下是我的腳本:

function pythagoras() { 
    function solvepy(form) { 
     var a = parseFloat(form.a.value); 
     var b = parseFloat(form.b.value); 
     c.value = Math.sqrt(a * a + b * b); 
    } 

    function pythagoras(form) { 
     var aInput = document.getElementById("a"); 
     var bInput = document.getElementById("b"); 
    } 
    var result = displayResult(); 
} 

function displayResult(a, b, c) { 
    var div = document.getElementById("result"); 
    div.innerHTML = "Triangle: a = " + a + ", b = " + b + ". c = " + c; 
} 

以下是我的身體:

<form> 
    <label for="a">Enter lengths for sides a: </label> 
    <input type="number" id="a" size="3"> 
    <label for="b"> and b: </label> 
    <input type="number" id="b" size="3"><br> 
    <input type="button" id="submit" value="Compute c!"> 
</form> 
<div id="result"> 
</div> 
+3

你在哪裏調用該函數?你永遠不會從任何函數返回值,也不會將任何值傳遞給'displayResult','solvepy'內的'c'沒有被定義。有很多東西是不正確的,所以我建議閱讀一些關於函數的教程,或者一般的JavaScript:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions,http ://eloquentjavascript.net/chapter3.html。堆棧溢出不是學習某種語言基礎知識的好地方。 –

回答

0

試試這個..

的Javascript:

// Set global variables, so they can be accessed trough all functions 
var a, b, c; 

function calculate() { 
     a = parseFloat(document.pythagora.a.value); 
     b = parseFloat(document.pythagora.b.value); 
     c = Math.sqrt(a * a + b * b); 
     displayResult(a,b,c); 
} 
function displayResult(a, b, c) { 
    var div = document.getElementById("result"); 
    div.innerHTML = "Triangle: a = " + a + ", b = " + b + ". c = " + c; 
} 

身體

<form name="pythagora"> 
    <label for="a">Enter lengths for sides a: </label> 
    <input type="number" id="a" size="3"> 
    <br> 
    <label for="b"> and b: </label> 
    <input type="number" id="b" size="3"><br> 
    <br> 
    <input type="button" id="submit" value="Compute c!" onClick="calculate();"> 
</form> 
<div id="result"> 
</div> 

Here is a working example link..(click here)

+2

你爲什麼在你的例子中使用全局變量?你甚至不需要它們。 –

+0

這是最初添加,而試圖使張貼的例子工作..後來我改變了功能等,但變量留在那裏。由於用戶是初學者,所以不會顯示有關JS如何工作的一些信息。 –

+2

當然,但是應該避免一般的全局變量,所以顯示不好的做法不是好事;) –