沉迷学习不能自拔_
2016-11-02 19:30
为什么我的代码加法12+12=1212,其他的都有用,就 加法 有问题。
<!DOCTYPE html>
<html>
<head>
<title> 事件</title>
<script type="text/javascript">
function count()
{
var a=document.getElementById("txt1").value;
var b=document.getElementById("txt2").value;
var c=document.getElementById("select").value;
switch(c){
case "+":c=a+b;
break;
case "-":c=a-b;
break;
case "*":c=a*b;
break;
case "/":c=a/b;
break;
default:"错误";
}
document.write(c);
}
</script>
</head>
<body>
<input type='text' id='txt1' />
<select id='select'>
<option value='+'>+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type='text' id='txt2' />
<input type='button' value=' = ' onclick="count()"/> <!--通过 = 按钮来调用创建的函数,得到结果-->
<input type='text' id='fruit' />
</body>
</html>
function count(){ //获取第一个输入框的值 var otxt1= document.getElementById("txt1").value; //获取第二个输入框的值 var otxt2= document.getElementById("txt2").value; //获取选择框的值 var oselect=document.getElementById("select").value; //获取通过下拉框来选择的值来改变加减乘除的运算法则 switch(oselect){ case "+" : otxt3=parseInt(otxt1) + parseInt(otxt2); break; case "-": otxt3=parseInt(otxt1) - parseInt(otxt2); break; case "*": otxt3=parseInt(otxt1) * parseInt(otxt2); break; case "/": otxt3=parseInt(otxt1) / parseInt(otxt2); break; } //设置结果输入框的值 document.getElementById("fruit").value=otxt3; }
可能是你最后面的输入框值写错了,望采纳!
因为默认的是字符串类型,字符串的12+12=1212,要把字符串转换成数字,即给a,b前面加上parseInt,如parseInt(a)+parseInt(b),这样就可以了
直接获取的是string类型的,可以使用parseInt( str)转换为Int类型,也可以直接加上*1,进行转换。
以a+b为例:可以写为parseInt(a)+parseInt(b),也可以写成 a*1 + b*1
以上
我找到办法了!
var a=parseInt(document.getElementById('txt1').value)
var b=parseInt(document.getElementById('txt2').value)
这样就好了
我也是这样,就加法有问题,找不到原因
JavaScript进阶篇
468062 学习 · 21891 问题
相似问题