对于javascript的eval是否正确?

时间:2013-08-24 17:01:18

标签: javascript html forms math eval

我有这个代码这是正确的javascript eval用法,如果不能帮助我吗?

<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>

这是我用javascript谈论html的代码。

1 个答案:

答案 0 :(得分:3)

不,you can't use document.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
  • 缩进使代码更具可读性
  • 还会对h4中的b发表评论,但它开始过多