weixin_慕莱坞515421
2019-05-04 17:16
<!DOCTYPE html>
<html>
<head>
<title> 事件</title>
<script type="text/javascript">
function count(){
//获取第一个输入框的值
var x=document.getElementById("txt1").value;
//获取第二个输入框的值
var y=document.getElementById("txt2").value;
//获取选择框的值
var cal=document.getElementById("select").value;
//获取通过下拉框来选择的值来改变加减乘除的运算法则
switch(cal){
case '+':
var rst=x+y;break;
case '-':
rst=x-y;break;
case '*':
rst=x*y;break;
default:
rst=x/y;break;
}
//设置结果输入框的值
document.getElementById("fruit").value=
}
</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>
比如输入3+5的话结果会变成35 而不是8
其他运算结果都对
我试了用parseInt函数处理x和y但还是这样,不知道是怎么回事??
var x=document.getElementById("txt1").value;
这样获取的都是字符串类型,直接用+的话相当于拼接字符串,所以这里应该先用parseInt(x)转换为数值类型再进行相加。至于其他的都对,应该是隐式转换了。
文本输入框的值默认是字符串,要用parseInt转化成数值
var x=parseInt(document.getElementById("txt1").value);
var y=parseInt(document.getElementById("txt2").value);
只有+是35其他却正常,那是因为字符串之间连接也是用+
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题