js从文本框中获取数值用来计算时,相加结果为字符串

<body>

<form>
边长a:<input name="a" type="number" value="3"><br/>
边长b:<input name="b" type="number" value="4"><br/>
边长c:<input name="c" type="number" value="5"><br/>
<input name="calculate" type="button" value="计算周长" onclick="cal(this.form)"><br/>
周长:<input name="s" type="number"><br/>
</form>

<script language="javascript">
function cal(form)
{
var a=form.a.value;
var b=form.b.value;
var c=form.c.value;
form.s.value = a+b+c;
}
</script>

</body>

运行的结果:

这是哪儿的问题?应该怎么解决啊?

js是一个弱数据类型的语言,input框中获取的值全部为字符串类型,另外js里边还有一种类型叫做number类型,你如果要进行数字之间的加减,必须将字符类型转换为number类型,
如果是整型,就用:
var a=parseInt(form.a.value,10);
var b=parseInt(form.b.value,10);
var c=parseInt(form.c.value,10);
就是将字符类型转换成10进制的int类型。希望采纳。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-25
因为那是string 类型,只要改成 int 类型就可以了。用parseFloat()可以转为int类型,然后再计算就可以了。
第2个回答  2013-07-25
var a=parseFloat(form.a.value);
var b=parseFloat(form.b.value);
var c=parseFloat(form.c.value);
这3个改下
相似回答