为了账号安全,请及时绑定邮箱和手机立即绑定

为什么输出结果是NaN?

<!DOCTYPE html>

<html>

 <head>

  <title> 事件</title>  

  <script type="text/javascript">

   function count(){

       

    var a;

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

    //获取第一个输入框的值

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

//获取第二个输入框的值

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

//获取选择框的值

var result="";

switch(myDropdownbox)

{

case "+":

    result=parseFloat("num1")+parseFloat("num2");

    break;

    

     case "-":

    result=parseFloat("num1")-parseFloat("num2");

    break;

    

case "*":

    result=parseFloat("num1")*parseFloat("num2");

    break;

    

default:

    result=parseFloat("num1")/parseFloat("num2");

    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>


正在回答

4 回答

你的函数调用用错了地方,应该是点击“=”号来触发计算的事件的:

  <input type='button' value=' = ' / onclick="count()"> <!--通过 = 按钮来调用创建的函数,得到结果-->

你的代码如下:

   <input type='button' value=' = ' /> <!--通过 = 按钮来调用创建的函数,得到结果--> 

   <input type='text' id='fruit' onfocus="count()"/>  

这个意思是通过聚焦结果按钮来触发onfocus函数。


0 回复 有任何疑惑可以回复我~

parseFloat(num1)  括号里的是变量,不是字符串,你加了引号,parseFloat("num1") 去掉引号改成 parseFloat(num1) 就OK了

0 回复 有任何疑惑可以回复我~

https://img1.sycdn.imooc.com//5b3a342a0001593b02100121.jpgonclick="count()"

0 回复 有任何疑惑可以回复我~

你为啥用了parseFloat,应该用parseInt.

<script type="text/javascript">

   function count(){

       

    //获取第一个输入框的值

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

//获取第二个输入框的值

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

//获取选择框的值

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

//获取通过下拉框来选择的值来改变加减乘除的运算法则

switch(select)

{

   case "+":

   var sum=txt1+txt2;

   break;

    case "-":

   var sum=txt1-txt2;

   break;

    case "*":

   var sum=txt1*txt2;

   break;

   case "/":

   var sum=txt1/txt2;

   break;

   default:

   document.write("没有");

   break;

}

    //设置结果输入框的值 

    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=' = ' /> <!--通过 = 按钮来调用创建的函数,得到结果--> 

   <input type='text' id='fruit' onfocus="count()"/>   

 </body>


0 回复 有任何疑惑可以回复我~
#1

木東97 提问者

我用了parseInt结果也还是NaN
2018-06-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       467177    人
  • 解答问题       21875    个

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

进入课程

为什么输出结果是NaN?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信