Javascript/jQuery - 如果输入的值为

Javascript/jQuery - if the value of the input is

我想制作一个可以工作的计算器。 现在,我想在运算符之间切换。

假设我有 + 和 -。然后,我有2个号码。接线员在他们中间。

如果运算符的值为+,则应该计算+。 如果运算符的值为-,则应计算-.

我尝试过类似的方法,但它不起作用,帮助?

function Operator() {
            if ($('#realOperator').val == ('+');){
                    var a = parseInt($('input[name=a]').val());
                    var b = parseInt($('input[name=b]').val());
                    $('#total').val(a+b);
            }else
               $('#total').val(a-b);
            } 
        }

Information

#realOperator is the input with the operator

#total is the input with the result.

谢谢,如果语法有误,我也很抱歉。我是新手!

你可以试试这个代码

function Operator() {
var a = parseInt($('input[name=a]').val());
var b = parseInt($('input[name=b]').val());
if ($('#realOperator').val() == ('+')) {
    var sum = a + b;
    $('#total').val(sum);
} else {
    if (a > b) {
        var minus = a - b;
    } else {
        var minus = b - a;
    }
    $('#total').val(minus);
  }
}

如果您发送代码或输入 realOperator 值,我会再次检查

这是@Loris Vonlanthen 的解决方案

function Operator() {
    var a = parseInt($('input[name=a]').val());
    var b = parseInt($('input[name=b]').val());
    if ($('#realOperator').val() == '+') {
        $('#total').val(a + b);
    } else
        $('#total').val(a - b);
}

您应该删除条件中的分号,此外,您需要在 if 语句之外设置 a 和 b,因为您的“-”代码不知道 a 和 b 是什么。

您还有一些语法错误,我已在下面为您更正。

function Operator() {
    var a = parseInt($('input[name=a]').val(), 10);
    var b = parseInt($('input[name=b]').val(), 10);
    if ($('#realOperator').val() == ('+')){
        $('#total').val(a+b);
    } else {
        $('#total').val(a-b);
    } 
}

if语句之间有分号(;)。

此外,您不需要像 ('+') 这样的运算符用括号括起来。你可以只写'+'。

您还错过了 else 的“{”,但您已经关闭了。

您应该试试这个代码:

function Operator() {
        if ($('#realOperator').val == '+'){
                var a = parseInt($('input[name=a]').val());
                var b = parseInt($('input[name=b]').val());
                $('#total').val(a+b);
        }else{
           $('#total').val(a-b);
        } 
    }
  1. 您的代码中存在一些语法错误,例如此处:if ($('#realOperator').val == ('+');){。分号是不必要的。

  2. 方法.val() 将得到输入值字符串。您必须将其转换为 number.

  3. 最好将逻辑与标记分开。因此,将您的 Operator 函数定义为一个纯函数,它接受两个数字和一个运算符,并计算结果。

function operator(a, b, operation) {
  if (operation === '+') {
    return a + b;
  }
  else if (operation === '-') {
    return a - b;
  }
  
  // you can implement more operations like * / %
  
  throw new Error('Unhandled Operation');
}

$(function () {
  $('[data-role="operator"]').on('click', function () {
    var operation = $(this).text();
    var a = $('#a').val() * 1; // make it number
    var b = $('#b').val() * 1; // make it number
    
    $('#total').val( operator(a, b, operation) );
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<input id="a" type="text" />
<input id="b" type="text" />
<button data-role="operator">+</button>
<button data-role="operator">-</button>

<hr />
<input id="total" />