Javascript / jQuery - 如果输入的值是

时间:2017-01-02 13:13:30

标签: javascript jquery if-statement operator-keyword

我想制作一个有效的计算器。 现在,我想在运营商之间进行转换。

假设我有+和 - 。然后,我有2个号码。操作员就在他们之间。

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

我试过这样的东西,但它不起作用,帮忙?

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);
            } 
        }
  

信息

     

#realOperator是运算符的输入

     

#total是输入结果。

感谢和抱歉,即使语法错误..我是新的!

5 个答案:

答案 0 :(得分:1)

这是解决方案@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);
}

答案 1 :(得分:1)

你应该删除你的条件中的分号,你也需要在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);
    } 
}

答案 2 :(得分:0)

你可以试试这段代码

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值,那么我将再次检查

答案 3 :(得分:0)

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

此外,您不需要围绕操作员包围括号(' +')。你可以写' +'。

你也错过了' {'与其他但你已经关闭。

您应该尝试以下代码:

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);
        } 
    }

答案 4 :(得分:0)

  1. 您的代码中存在一些语法错误,例如:if ($('#realOperator').val == ('+');){。分号是不必要的。

  2. 方法.val()会将输入值作为字符串。您必须将其强制转换为数字

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

  4. 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" />