需要帮助简单的计算器

时间:2010-07-29 10:53:26

标签: javascript

<html>
<head>
<script language="javascript">
function fadd()
{
var first,sec,res;
first=parsefloat(document.forms[0].txt1st.value);
sec=parsefloat(document.forms[0].txt2nd.value);
res=first+sec;
document.forms[0].txtres.value=res;
}
</script>
</head>


<body>
<form>
Enter 1st number &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input name="txt1st" id="txt1st" type="text">
</br>
Enter 2nd number &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="txt2nd" id="txt2nd" type="text">
</br>
Result &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;
<input name="txtres" id="txtres" type="text">
</br>
<input name="btnadd" id="btnadd" type="button" value="+" onclick="fadd()">
<input name="btnsub" id="btnsub" type="button" value="-" onclick="fminus()">
<input name="btndiv" id="btndiv" type="button" value="%" onclick="fdiv()">
<input name="btnmul" id="btnmul" type="button" value="*" onclick="fmult()">
</form> 
</body>
</html>

3 个答案:

答案 0 :(得分:3)

编辑:此问题已在问题更新前发布。

您不能对以数字开头的属性名称使用点表示法。

请勿使用document.forms[0].1st。使用document.getElementById('1st')。这同样适用于2nd

var x = {};

x['1st'] = 10;

console.log(x['1st']); // This works
console.log(x.1st);    // This doesn't - Syntax error

答案 1 :(得分:3)

两件事:

parsefloat应为parseFloat。函数名称区分大小写。

1st不是合法身份证件(我认为这也不是合法的名称)。此外,您不能以点表示法(1st)引用非标识符(x.y.z不是标识符,因为它以数字开头)。您可以尝试document.forms[0]['1st'].value,或者尝试将1st重命名为first(以及2ndsecond)。

答案 2 :(得分:0)

此外,您应该更改此行:

document.forms[0].textres.value=res;

对此:

document.forms[0].txtres.value=res;

在听完其他帖子的建议并执行此操作后,您的代码应该可以正常工作。