2017-02-12 80 views
0

你們知道,當我把這個變量放在函數之外時,結果是「不是數字」?爲什麼當我把變量放在函數之外時,javascript會返回NaN?

當放置一個函數時,不要變量變成「全局」?

<html> 
<head> 
<script type="text/javascript"> 
// V-LOXY > Variaveis Calculo de Frete 

var Comp = document.getElementById('ComprimenTo').value; 
var Larg = document.getElementById('Largura').value; 
var Alt = document.getElementById('Altura').value; 
var TxCubagem = 300 

function PesoCubado(){ 

document.getElementById('PesoCub').innerHTML = ((Comp/100)*(Larg/100)*(Alt/100)*TxCubagem).toFixed(1)+' kg'; 
} 

</script> 

</head> 

<body> 

<label>Comprimento [cm]: 
<input id='ComprimenTo' type="number" width="15"/></label><br /> 
<p></p> 
<label>Largura [cm]: 
<input id='Largura' type="number" width="15"/></label><br /> 
<p></p> 
<label>Altura [cm]: 
<input id='Altura' type="number" width="15"/></label><br /> 
<p></p>  
<input type='button' onclick='PesoCubado()' value="Calcular" > 
<p></p> 

<p>Peso Cubado: <b id='PesoCub'></b> </p> 


</body> 

</html> 
+2

奇怪;考慮到你的'

0

你有幾個問題你的腳本,它們是:

  • 您的變量指向文本字段的初始值,因此,不會使用最新值。你應該得到你的PesoCubado函數中每個字段的值。
  • 從輸入返回的值始終是字符串,因此您必須使用Number函數將它們轉換爲數字。
  • 您最好將代碼包裝在事件偵聽器的window上以確保您的頁面已完全加載。

希望這會有所幫助。

湯姆

+0

很多湯姆!當我按照你的技巧工作正常:) –

+0

@ArthurEmidio你非常歡迎 – maddockst

相關問題