【问题标题】:Calculate area from inputs in Javascript根据 Javascript 中的输入计算面积
【发布时间】:2011-11-17 20:31:24
【问题描述】:

我在这里有一个非常简单的 javascript 计算器,但它似乎不起作用。我敢肯定这是很容易解决的问题,但就是看不到。我已经花了一段时间,并认为我最好在这里问。有什么建议么?谢谢! http://jsfiddle.net/z98gb/7/

Width <input type="Text" name="width" size="4">  
Height <input type="Text" name="height" size="4" onkeyup=""> <br><br>
Area <input type="Text" name="area" id="area" size="4"> <br><br>
<input type="button" name="calculate" id="area" size="4" onclick="calculateArea()"    value="calculate">

这是javascript:

function calculateArea() {
var width = document.getElementById("width").value;
var height = document.getElementById("height").value;
var area = width * height;
document.getElementById("area").value = area;

}

【问题讨论】:

    标签: javascript height getelementbyid calculator area


    【解决方案1】:

    您没有为输入指定 id

    工作示例:http://jsfiddle.net/z98gb/8/

    【讨论】:

    • 啊哈!这正是我所需要的。不敢相信我没有发现。谢谢。
    • 按钮的 id 也与结果字段相同。
    【解决方案2】:

    在对它们执行计算之前,您需要将 DOM 值转换为实际数字。如果您正在处理整数,请使用 parseInt,或者更有可能使用 parseFloat 来支持小数。

    如果您使用parseInt,请不要忘记指定一个 10 来表示以 10 为基数。否则,JavaScript 会将前导零视为以 8 为基数。

    var width = parseInt(document.getElementById("width").value, 10);
    var height = parseInt(document.getElementById("height").value, 10);
    var area = width * height;
    

    编辑

    此外,正如 Francis 所说,您忘记在输入中添加 ID。

    【讨论】:

    • 乘法将负责类型转换。如果海报使用加法,这将是一个问题。
    • 如果与数学运算符一起使用,输入字符串将自动转换(+ 除外,它兼作字符串连接运算符),因此不会阻止简单示例使用有效输入。尽管如此,仍不能保证有效的输入,因此字符串肯定应该在使用前转换为数字(或者使用正则表达式或其他方式进行验证),以便可以显示有意义的错误消息 - 我建议使用一元 + 运算符而不是 parseInt( ) 但最重要的是它完成了。
    • @nnnn - 感谢您的反馈。我不是一个狂热的 JS 程序员,但我确实更喜欢一元 + 运算符,想想吧。
    【解决方案3】:

    您使用的是 getElementById 而不是 getElementByName。您需要指定一个 id 或切换您在代码中使用的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多