非常简单的js计算器不起作用

时间:2014-05-06 11:48:25

标签: javascript html

我做错了什么?

HTML

<form name="Calc">
    <BR>
    <input type="text" name="1" size="20">*
    <input type="text" name="2" size="20">=
    <input type="text" name="sum" size="20">
    <BR>
    <input type="button" name="Calc" value="Calculate" onClick="calcsum()">
</form>        

脚本

function calcsum() {
    sum.value = 1.value * 2.value;
}

http://jsfiddle.net/Vrfw9/

2 个答案:

答案 0 :(得分:2)

您应该使用document.getElementsByName

尝试:

function calcsum() {
    document.getElementsByName("sum")[0].value = document.getElementsByName("1")[0].value * document.getElementsByName("2")[0].value;
}

DEMO

答案 1 :(得分:0)

如果您传入对侦听器中按钮的引用:

<input type="button" ... onclick="calcsum(this)">

然后在函数中,您可以使用它来按名称获取对表单及其他控件的引用:

function calcsum(button) {
    var form = button.form;
    sum.value = form['1'].value * form['2'].value;
}

请注意,表单控件值始终是字符串,因此请谨慎使用+进行添加。

我不喜欢HTML属性名称的混合大小写。它们不区分大小写,但它们的相关DOM属性是。最好使用“onclick”使属性与DOM“onclick”属性匹配。