jquery在文本框中计算价格和手动折扣

时间:2018-05-12 08:42:48

标签: jquery html

我需要在jquery中使用Calculation构建一个html页面。这应该自动出现在下面。

数量x价格=金额(自动) 总金额(自动) 总金额 - 折扣(手动)=净金额

请找到下面的html代码,让我知道最简单的方法。 {{3}}

 <table width="300" border="0" cellspacing="0" cellpadding="0">
      <tbody>
           <tr>

            <td>Item Name</td>
            <td>Qty</td>
            <td>Price(Per/Kg)</td>
            <td>Amount</td>
          </tr>

          <tr>
    <td>Test Item 1</td>
            <td><input name="input" type="text" onChange="" /></td>
            <td><input name="input" type="text" /></td>
            <td><input name="input" type="text" /></td>
          </tr>
      </tbody>
    </table>
    <p>&nbsp;</p>
    <table width="300" border="0">
      <tr>
        <td width="100"><strong>Total Amount</strong></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><strong>Discount</strong></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><strong>Net Amount</strong></td>
        <td>&nbsp;</td>
      </tr>
    </table>

4 个答案:

答案 0 :(得分:1)

您需要提供字段 ID。 我们将以下ID用于演示目的。

<input type="text" name="demoOne" id="demoOne">
<input type="text" name="demoTwo" id="demoTwo">
<input type="text" name="demoResult" id="demoResult">

对于jQuery,我们可以使用非常基本的东西,如下所示 我们创建2个变量来获取字段的值,并简单地给结果字段计算那些 fiels 的计算结果。

<script>
$('#demoTwo #demoOne').keyup(function(){
var demoOne;
var demoTwo;
demoOne = parseFloat($('#demoOne').val());
demoTwo = parseFloat($('#demoTwo').val());

var demoResult = demoOne + demoTwo;
$('#demoResult').val(demoResult.toFixed(2));


});
</script>

答案 1 :(得分:1)

&#13;
&#13;
$('#items-table').on('input', '.qty input, .price input', function() {

  var row = $(this).parents('tr');

  var qty = row.find('.qty input').val();
  var price = row.find('.price input').val();
  row.find('.amt').text(qty * price);

  var rows = $(this).parents('table').find('tr:not(:first-child)');

  var total_amt = 0;
  rows.each(function() {
    var amt = $(this).find('.amt').text() || 0;
    total_amt += parseFloat(amt)
  })

  var calc_table = $('#total-calc');

  var discount = calc_table.find('.discount input').val() || 0;

  var net_amt = total_amt - discount;
  
  calc_table.find('.total-amt').text(total_amt);
  calc_table.find('.net-amt').text(net_amt);


})

$('#total-calc .discount input').on('input', function(){
  var calc_table = $('#total-calc');
  var total_amt = calc_table.find('.total-amt').text() || 0;
  var discount = $(this).val() || 0;
  var net_amt = total_amt - discount;
  calc_table.find('.net-amt').text(net_amt);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="items-table" width="300" border="0" cellspacing="0" cellpadding="0">
  <tbody>
    <tr>

      <td>Item Name</td>
      <td>Qty</td>
      <td>Price(Per/Kg)</td>
      <td>Amount</td>
    </tr>

    <tr>
      <td>Test Item 1</td>
      <td class="qty"><input name="input" type="text" onChange="" /></td>
      <td class="price"><input name="input" type="text" /></td>
      <td class="amt"><input name="input" type="text" /></td>
    </tr>
  </tbody>
</table>
<p>&nbsp;</p>
<table id="total-calc" width="300" border="0">
  <tr>
    <td width="100"><strong>Total Amount</strong></td>
    <td class="total-amt">&nbsp;</td>
  </tr>
  <tr>
    <td><strong>Discount</strong></td>
    <td class="discount"><input name="input" type="text" /></td>
  </tr>
  <tr>
    <td><strong>Net Amount</strong></td>
    <td class="net-amt">&nbsp;</td>
  </tr>
</table>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

多行的通用解决方案。

jQuery的:

<table width="300" border="0" cellspacing="0" cellpadding="0">
      <tbody>
           <tr>

            <td>Item Name</td>
            <td>Qty</td>
            <td>Price(Per/Kg)</td>
            <td>Amount</td>
          </tr>

          <tr class="amount-row">
    <td>Test Item 1</td>
            <td><input class="quantity"  name="input" type="text" /></td>
            <td><input class="price" name="input" type="text" /></td>
            <td><input class="amount" name="input" type="text" /></td>
          </tr>
                    <tr class="amount-row">
    <td>Test Item 2</td>
            <td><input class="quantity"  name="input" type="text" /></td>
            <td><input class="price" name="input" type="text" /></td>
            <td><input class="amount" name="input" type="text" /></td>
          </tr>
      </tbody>
    </table>
    <p>&nbsp;</p>
    <table width="300" border="0">
      <tr>
        <td width="100"><strong>Total Amount</strong></td>
        <td id="total-amount">&nbsp;</td>
      </tr>
      <tr>
        <td><strong>Discount</strong></td>
        <td><input type="text" id="discount"></td>
      </tr>
      <tr>
        <td><strong>Net Amount</strong></td>
        <td id="net-amount">&nbsp;</td>
      </tr>
    </table>

HTML:

start

请在这里找到工作小提琴:https://jsfiddle.net/9egno7ge/3/

答案 3 :(得分:1)

使用此功能。我不知道你怎么算discount。你可以在我的代码中添加一点点来添加它。

function calculateTotal() {
  // --------------------
  $("#target tr").each(function() {
    if ($(this).children("td").length) {
      $($($(this).children("td")[3]).children("input")[0]).val(

        (($($($(this).children("td")[2]).children("input")[0]).val()) ? Number($($($(this).children("td")[2]).children("input")[0]).val()) : 0) *
        (($($($(this).children("td")[1]).children("input")[0]).val()) ? Number($($($(this).children("td")[1]).children("input")[0]).val()) : 0)

      )
    }
  });

  // --------------------
  var totalAm = 0;
  $("input[name='amount']").each(function() {
    totalAm += $(this).val() ? Number($(this).val()) : 0;
  });
  $("td[name='t_am']").text(totalAm);
  // --------------------
  var discount = $("input[name='discount']").val() ? Number($("input[name='discount']").val()) : 0;
  $("td[name='tn_am']").text($("td[name='t_am']").text() - discount);
}

$("input").on('change', function() {
  calculateTotal();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<table id="asdf" width="40%" border="0" cellspacing="2" cellpadding="2">
  <tr>
    <td>Client Code:</td>
    <td><input name="" type="text" /></td>
    <td align="right">Client Name:</td>
    <td><input type="text" name="fname"></td>
  </tr>
  <tr>
    <td>Address:</td>
    <td><input name="" type="text" /></td>
    <td align="right">LPO No:</td>
    <td><input name="" type="text" /></td>
  </tr>
</table>


<table id="target" width="300" border="0">
  <tbody>
    <tr>

      <td>Item Name</td>
      <td>Qty</td>
      <td>Price(Per/Kg)</td>
      <td>Amount</td>
    </tr>

    <tr>
      <td>Test Item 1</td>
      <td><input name="qty" type="text" /></td>
      <td><input name="price" type="text" /></td>
      <td><input name="amount" disabled type="text" /></td>
    </tr>
  </tbody>
</table>
<p>&nbsp;</p>
<table width="300" border="0">
  <tr>
    <td width="100"><strong>Total Amount</strong></td>
    <td name="t_am">&nbsp;</td>
  </tr>
  <tr>
    <td><strong>Discount</strong></td>
    <td><input type="number" name="discount" id="discount"></input>
    </td>
  </tr>
  <tr>
    <td><strong>Net Amount</strong></td>
    <td name="tn_am">&nbsp;</td>
  </tr>
</table>