2012-03-12 10 views
-2

如何使方法始終等於一個「未定義」,然後是數字? 當我嘗試解析它。它返回給我一個NaN。這段代碼如何返回給我一個「未定義」,然後是一個值

<!DOCTYPE> 
<html> 
<head> 
<script> 

var fnum; 
var secondNum; 
var operation; 

function msg(val) { 

document.getElementById("fnumtext").value += val; 
fnum += val; 
} 
function showOperation(oper) 
{ 
    document.getElementById("fnumtext").value = ""; 
    document.getElementById("operation").value = oper; 
    operation = oper; 
} 

function equal() { 
    secondNum = document.getElementById("fnumtext").value; 
    alert(fnum);  
} 

</script> 
</head> 
    <body> 
    <input id = "fnumtext"type="text" name="firstnum" /><br /> 
    <input id = "operation" type="text" name="secondnum" /><br /> 
    <input type="button" value="1" onclick="msg('1')" /> 
    <input type="button" value="2" onclick="msg('2')" /> 
    <input type="button" value="3" onclick="msg('3')" /></br> 
    <input type="button" value="4" onclick="msg('4')" /> 
    <input type="button" value="5" onclick="msg('5')" /> 
    <input type="button" value="6" onclick="msg('6')" /><br/> 
    <input type="button" value="7" onclick="msg('7')" /> 
    <input type="button" value="8" onclick="msg('8')" /> 
    <input type="button" value="9" onclick="msg('9')" /></br> 
    <input type="button" value="0" onclick="msg('0')" /></br> 
    <input type="button" value="+" onclick="showOperation('+')" /> 
    <input type="button" value="*" onclick="showOperation('*')" /> 
    <input type="button" value="/" onclick="showOperation('/')" /> 
    <input type="button" value="-" onclick="showOperation('-')" /> 
    <input type="button" value="=" onclick="equal()" /> 
    </body> 
</html> 
+2

有什麼方法?什麼返回?這沒有任何意義。 – 2012-03-12 05:57:31

+0

@GGG當我調用「equal」方法時,它提示未定義的+文本框中的值。檢查它,它已被編輯 – user962206 2012-03-12 06:03:11

+0

這是因爲fnum + = val會返回字符串'undefined + '。你可以通過將fnum初始化爲0來解決這個問題。 – 2012-03-12 06:22:19

回答

0

msg()函數中的val變量作爲字符串輸入。因此,當您嘗試執行+=時,它會將其原始值視爲一個字符串,因此您最終會以'undefined' + <some integer>創建效果。

嘗試從您的onclick事件中刪除所有函數調用中的單引號,並且只需發送整數。此外,如果您要使用+=運算符,則應該定義var fnum = 0;,而不是僅聲明該變量。

+0

但如果我試圖按2位數字?像55? – user962206 2012-03-12 06:34:16

+0

@ user962206:我不打算坐在這裏爲你做好整件事。你的問題只是關於「未定義」部分。很明顯,你現在的舞臺只會增加你按下的每個數字,操作員甚至不會做任何事情。 – animuson 2012-03-12 21:15:35

0

您以「fnum」變量作爲參數調用「alert」。如果在按任何其他按鈕之前按「等於」,則可能不確定

+0

你是什麼意思? – user962206 2012-03-12 06:08:01

+0

function equal(){ secondNum = document.getElementById(「fnumtext」).value; 警報(fnum); - 這裏fnum可以是不確定的,如果你點擊你的「等號」按鈕之前點擊任何其他按鈕 } – fedotoves 2012-03-13 06:35:26

相關問題