<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 <input name="txt1st" id="txt1st" type="text">
</br>
Enter 2nd number <input name="txt2nd" id="txt2nd" type="text">
</br>
Result
<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>
答案 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
(以及2nd
至second
)。
答案 2 :(得分:0)
此外,您应该更改此行:
document.forms[0].textres.value=res;
对此:
document.forms[0].txtres.value=res;
在听完其他帖子的建议并执行此操作后,您的代码应该可以正常工作。