代码之家  ›  专栏  ›  技术社区  ›  bma pachuau

使用jquery计算折扣

  •  0
  • bma pachuau  · 技术社区  · 9 年前

    这是我的密码

    $(document).on("change keyup blur", "#chDiscount", function() {
      var amd = $('#cBalance').val();
      var disc = $('#chDiscount').val();
      if (disc != '' && amd != '')
        $('#cBalance').val((parseInt(amd)) - (parseInt(disc)));
    
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    
    
    <input type="number" id="cBalance" value="1575">
    <br>
    <input type="number" id="chDiscount">

    我有一个预填充值 cBalance 输入,即。, 1575 。当我键入折扣值时,例如500 in chDiscount 输入,它给我 1020 而不是1075。我想要这个值 1575 成为 1575 ch折扣 输入每当我在chDiscount输入中键入新值时,计算会不断增加cBalance值,它不会从默认值增加。 我的扩展输出:当我键入500时,我希望默认值1575为1075。如果我删除我键入的1000,我希望在cBalance中恢复默认值1575。如果我在chDiscount中键入5,默认值将变为1570,如果我点击backspace删除,它将再次变为1575。 我如何才能做到这一点?我哪里出错了?请帮忙。

    2 回复  |  直到 9 年前
        1
  •  1
  •   Marko Mackic    9 年前

    $(document).on("change keyup blur", "#chDiscount", function() {
      var amd = $('#cBalance').val();
      var disc = $('#chDiscount').val();
      if (disc != '' && amd != '') {
        $('#result').val((parseInt(amd)) - (parseInt(disc)));
      }else{
        $('#result').val(parseInt(amd));
      }
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    
    
    <input type="number" id="cBalance" value="1575">
    <br>
    <input type="number" id="chDiscount">
    <br>
    <input type="number" id="result">

    我添加了结果字段,因为否则无法指定amd

        2
  •  1
  •   Siddhartha esunuri    9 年前

    如上所述,代码只是减去主值。这是精确解

    <input type="number" id="cBalance" value="1575"> <br>
       <input type="number" id="chDiscount"> <br>
       <input type="number" id="result">
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    
    $(document).on("change keyup blur", "#chDiscount", function() {
      var main = $('#cBalance').val();
      var disc = $('#chDiscount').val();
      var dec = (disc/100).toFixed(2); //its convert 10 into 0.10
     var mult = main*dec; // gives the value for subtract from main value
     var discont = main-mult;
      $('#result').val(discont);
    });
    

    JSFIDDLE