为什么相加结果不对

来源:6-11 编程练习

VoyageCN

2016-07-08 23:48

<!DOCTYPE html>
<html>
 <head>
  <title> 事件</title>  
  <script type="text/javascript">
   function count(){
       
    //获取第一个输入框的值
    var txt1 = document.getElementById("txt1").value;
	//获取第二个输入框的值
    var txt2 = document.getElementById("txt2").value;
	//获取选择框的值
    var select = document.getElementById("select").value;
	//获取通过下拉框来选择的值来改变加减乘除的运算法则
    var result = '';
    switch(select){
        case "+":
           result = txt1 + txt2;
           break;
        case "-":
            result = txt1 - txt2;
            break;
        case "*":
            result = txt1 * txt2;
            break;
        case "/":
            result = txt1 / txt2;
            break;
        default :
            break;
    }
    //设置结果输入框的值 
    document.getElementById("fruit").value = result;
   }
  </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>


写回答 关注

1回答

  • breakit
    2016-07-09 03:45:09
    已采纳

    因为:“+”符号被优先当做字符串连接符了,所以效果就是1字符串连接上了2字符串“12”;

    修正:加parseInt()方法强制转为整数。如:var txt1 = parseInt(document.getElementById("txt1").value);

    Voyage...

    原来如此 ,感谢帮助

    2016-07-09 10:45:53

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468192 学习 · 21891 问题

查看课程

相似问题