关于获取value值进行加法运算出错的问题
在学习的时候做一个简单的计算器,-、*、/都运算正确,但是在+上出了错,3+4=34...没办法只好发了问题,有好心人瞬间帮我解惑,感谢~
那是什么原因呢?我先附上错误的代码:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title> 事件</title> 5 <script type="text/javascript"> 6 function count(){ 7 //获取第一个输入框的值 8 var num1=document.getElementById("txt1").value; 9 //获取第二个输入框的值 10 var num2=document.getElementById("txt2").value; 11 //获取选择框的值 12 var a=document.getElementById("select").value; 13 //获取通过下拉框来选择的值来改变加减乘除的运算法则 14 var num3; 15 switch(a){ 16 case "+": 17 num3=num1+num2; 18 break; 19 case "-": 20 num3=num1-num2; 21 break; 22 case "*": 23 num3=num1*num2; 24 break; 25 case "/": 26 num3=num1/num2; 27 break; 28 } 29 //设置结果输入框的值 30 document.getElementById("fruit").value=num3; 31 } 32 </script> 33 </head> 34 <body> 35 <input type='text' id='txt1' /><br/><br/> 36 <select id='select'> 37 <option value='+'>+</option> 38 <option value="-">-</option> 39 <option value="*">*</option> 40 <option value="/">/</option> 41 </select><br/> <br/> 42 <input type='text' id='txt2' /><br/><br/> 43 <input type='button' value=' = ' onclick="count()"/><br/><br/> 44 <!--通过 = 按钮来调用创建的函数,得到结果--> 45 <input type='text' id='fruit' /> 46 </body> 47 </html>
问题就出在获取输入框的值。原来获取value值进行加法运算的时候会默认字符串相连,所以会出现3+4=34这种情况。
解决办法就是:用parseInt()解析字符串返回一个整数。如下:
1 var num1=parseInt(document.getElementById("txt1").value); 2 var num2=parseInt(document.getElementById("txt2").value);
问题解决!