请帮忙看一下为什么单击最后一个文本框不能算出答案?

来源:6-11 编程练习

慕粉18764815087

2016-07-29 13:54

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

为什么这个fin函数没有反应呢

写回答 关注

4回答

  • 水里有条鱼
    2016-07-29 14:17:17
    已采纳

    不懂为什么要用函数fin(),但是你想用也没办法,修改方法是把count()里面的var num删掉,因为声明了的话是局部变量只能在count()里使用,而去掉的话num变成了全局变量,fin()也可以调用了,记住要现实结果要先按等号键在按一下输出框。。

    慕粉1876...

    题目要求里说是点第三个输入框出答案......谢谢你确实因为不是全局变量。 我想了想把cout改回来,然后<input type='text' id='fruit' onclick="count()"/> 这样就不用点=了

    2016-07-29 14:22:06

    共 1 条回复 >

  • 地上马
    2016-08-01 07:14:04
    t1=parseInt(document.getElementById("txt1").value);

    这个在计算的时候就是当做字符串的,你要在计算的时候用

    parseInt(t1)

    我这有两种实现方法你可以瞧瞧:

    1)官方版本:

       function count() {
        var txt1 = document.getElementById('txt1');
        var txt2 = document.getElementById('txt2');
        var myselect = document.getElementById("select");
        var fruit = document.getElementById('fruit');
        var index = myselect.selectedIndex; //拿到选中项的索引 //selectedIndex代表的是你所选中项的index
        switch(index){
            case 0:
            fruit.value = parseInt(txt1.value) + parseInt(txt2.value);
            break;
            case 1:
            fruit.value = parseInt(txt1.value) - parseInt(txt2.value);
            break;
            case 2:
            fruit.value = parseInt(txt1.value) * parseInt(txt2.value);
            break;
            default:
            fruit.value = parseInt(txt1.value) / parseInt(txt2.value);
            break;
            }
       }

    2)自定义版本:

       function count() {
        var txt1 = document.getElementById('txt1');
        var txt2 = document.getElementById('txt2');
        var myselect = document.getElementById("select");
        var fruit = document.getElementById('fruit');
        var index = myselect.selectedIndex; //拿到选中项的索引 //selectedIndex代表的是你所选中项的index
        /*
            myselect.options[index].value; //拿到选中项options的value
            myselect.options[index].text; //拿到选中项options的text文本内容
        */
        var symbol= myselect.options[index].value; 
        fruit.value = eval(txt1.value+ symbol + txt2.value); //eval()函数可计算某个字符串,并执行其中的的 JavaScript 代码。
       }


  • GREY_PIG1233708179
    2016-07-30 17:19:46

    function count(){

      var txtA=document.getElementById("txt1").value;

        var txtB=document.getElementById("txt2").value;

        var selected=document.getElementById("select").value;

        var fruit;

       switch(selected){

        case '+':

             fruit=parseInt(txtA)+parseInt(txtB);

             break;

        case '-':

             fruit=parseInt(txtA)-parseInt(txtB);

             break;      

        case '*':

             fruit=parseInt(txtA)*parseInt(txtB);

             break;

        case '/':

             fruit=parseInt(txtA)/parseInt(txtB);

             break;

       }

     document.getElementById("fruit").value=fruit;

      }  

    你可以参照这种格式书写,没必要给两个按钮,可能是因为这个原因没有出来

  • 初晴ljp
    2016-07-29 14:32:43

    因为onclick是鼠标点击事件 用在按钮上 。文本框没有单击的吧

    我觉得你可以试试第三个输入框onchange事件。

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题