问答详情
源自:6-11 编程练习

设置计算机的程序,为什么只有加号不成功啊,求解

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


提问者:ssAfterHard 2016-11-03 21:21

个回答

  • 俯仰2015
    2016-11-07 22:00:43
    已采纳

    +号的意义可能被识别为连接符,只有加号两端确定为数字时,才将加号作为加法处理

  • stone310
    2016-11-04 07:12:55

    因为input标签的value是字符串格式,字符串相加就是拼接,而-*/都会自动先转成数字,再计算,因此,为了保证程序统一和可读,赋值的时候先将hom1和home2的value值的类型转换,利用parseInt(),如下:

    home1=parseInt(document.getElementById("txt1").value);
    home2=parseInt(document.getElementById("txt2").value);


  • 鸟人哥哥4271784
    2016-11-03 22:00:33

    自带的符号啥的不能用吧。。