2013-08-24 70 views
-2

我在這裏有這個代碼是正確的JavaScript eval用法如果不是你能幫我嗎?對於JavaScript的評估是正確的?

<form name="Adder" action="adder(Adder)"> 
<input type="number" name="num1" /> 
<b><h4>+</H4></b> 
<input type="number" name="num2" /> 
<input type="submit" value="Add" /> 
</form> 

<p>Your answer shoud appear here:</p> 
<script type="text/javascript"> 
function adder(Adder) { 
eval("x=num1;y=num2;document.write(x+y)"); 
} 
</script> 

這是我正在談論的HTML與JavaScript的代碼。

+0

爲什麼你認爲在這裏需要'eval'?你正在評估一個靜態字符串。 – Bergi

回答

3

不,you can't usedocument.write一旦文件被加載,你不需要eval在這裏。

你可以這樣做:

<form> 
    <input id=num1 type="number" name="num1" /> 
    <b><h4>+</h4></b> 
    <input id=num2 type="number" name="num2" /> 
    <input id=Add type="button" value=Add /> 
</form> 

<p>Your answer shoud appear here:</p><span id=sum></span 

<script type="text/javascript"> 
    document.getElementById('Add').onclick=function() { 
    var num1 = parseFloat(document.getElementById('num1').value); 
    var num2 = parseFloat(document.getElementById('num2').value); 
    document.getElementById('sum').innerHTML = num1 + num2; 
    } 
</script> 

Demonstration

注意

  • 我舉一個ID的三個需要的元素,讓他們更容易
  • 我用parseFloat來將字符串的值轉換爲數字
  • 我用innerHTML寫的結果在一段
  • 你添加功能不使用任何參數
  • 你並不需要在您的形式actionsubmit輸入,如果你不想提交
  • 您也可以刪除form
  • 縮進使代碼更易讀
  • 會有意見也做出關於h4b,但它的開始是太多
+0

嗯,它仍然給我一個錯誤 – bin

+0

@SarmadWahab有一些其他的錯誤,我修正了他們 –

+0

'onsubmit =「加法器();返回false;」'而不是你剛剛刪除的動作屬性也可以。 – bfavaretto

相關問題