Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有解析函数到算术函数的文本框计算器_Javascript_Calculator - Fatal编程技术网

Javascript 具有解析函数到算术函数的文本框计算器

Javascript 具有解析函数到算术函数的文本框计算器,javascript,calculator,Javascript,Calculator,我想做的是有两个文本框连接到一个按钮。单击按钮时,它将调用一个函数来解析2个文本框条目,然后执行添加(2个单独的函数)。有人能指出我在这件事上遗漏了什么吗?当我在控制台中调用它时,我一直将num1视为未定义 <!DOCTYPE html> <html> <head> <title>.</title> </head> <body> Number1: <input type='text' id='num1'&g

我想做的是有两个文本框连接到一个按钮。单击按钮时,它将调用一个函数来解析2个文本框条目,然后执行添加(2个单独的函数)。有人能指出我在这件事上遗漏了什么吗?当我在控制台中调用它时,我一直将
num1
视为未定义

<!DOCTYPE html>
<html>
<head>
<title>.</title>
</head>
<body>
Number1: <input type='text' id='num1'><br>
Number2: <input type='text' id='num2'><br>
<br>
<button onclick='add()'>Add</button>

<div id='toUser'></div> 

<script>
    var user = document.getElementById('toUser');
    var n1 = document.getElementById('num1').value;
    var n2 = document.getElementById('num2').value;

    function parsing()
    {
    var num1mod = parseFloat($('n1')).value;
    var num2mod = parseFloat($('n2')).value;

        if (isNaN(num1mod || num2mod))
        {
        user.innerHTML = ('Please enter a valid number');
        }
                    else  
        {
        add();
        }
    }

    function add() 
    {
    parsing(); 
    return num1mod + num2mod;
    user.innerHTML = (return)

    }

</script>
</body>
</html>

.
编号1:
编号2:

添加 var user=document.getElementById('toUser'); var n1=document.getElementById('num1')。值; var n2=document.getElementById('num2')。值; 函数解析() { var nummod=parseFloat($('n1')).value; var num2mod=parseFloat($('n2')).value; 如果(isNaN(nummod | | nummod)) { user.innerHTML=(“请输入有效数字”); } 其他的 { 添加(); } } 函数add() { 解析(); 返回num1mod+num2mod; user.innerHTML=(返回) }
试试这个

 function parsing()
 {
     var user = document.getElementById('toUser');
     var n1 = document.getElementById('num1').value;
     var n2 = document.getElementById('num2').value;
     var num1mod = parseFloat(n1);
     var num2mod = parseFloat(n2);

    if (!isNaN(n1) || !isNaN(n2))
    {
      user.innerHTML = 'Please enter a valid number';
    }else{
      var total =  num1mod + num2mod;
      user.innerHTML = total;
   }
 return false;
}

此代码存在一些问题:

  • $('num1')
    似乎是jQuery或其他库。从标签上看,虽然看起来您没有使用jQuery
  • 如果您使用的是jQuery,
    $('num1')
    是无效的选择器。它应该是
    $('#num1')
  • 如果您使用的是jQuery,那么它应该是
    .val()
    ,而不是
    .value
    ,并且它应该在前面的括号
    ($('#num1').val())
    ,而不是在外面
  • 本机JavaScript:

    var num1mod = parseFloat(n1, 10);
    var num2mod = parseFloat(n2, 10);
    
    var num1mod = parseFloat($('#num1').val(), 10);
    var num2mod = parseFloat($('#num2').val(), 10);
    
    jQuery:

    var num1mod = parseFloat(n1, 10);
    var num2mod = parseFloat(n2, 10);
    
    var num1mod = parseFloat($('#num1').val(), 10);
    var num2mod = parseFloat($('#num2').val(), 10);
    

    谢谢,它删除了一个错误,但是num1,n1,num1mod仍然返回为未定义。更新了我的答案,请检查