多元素的jQuery数学运算

时间:2015-05-04 11:38:50

标签: javascript jquery html

我有一个简单的发票页面,因此我可以为我的客户开具发票,但是当我要对数量和价格执行乘法时,行总数不会添加。到目前为止,这是我的jQuery。

$(":input").bind('keypress keydown keyup change', function(){
  var price = parseFloat($(this).closest('.tr').find('.price').val(),10),
  var qty = parseFloat($(this).closest('tr').find('.quantity').val(),10);
  var v = '';
  if(!isNaN(price) && !isNaN(qty)) {
    v = price * qty;
  }
  $(this).closest('tr').find('.rowtotal').val(v.toString());
});

这是我的HTML:

    <table>
    <tr>
        <td>1</td>
        <td><input name="item_name[]"class="form-control"></td>
        <td><input name="item_description[]"class="form-control"></td>
        <td><input name="item_price[]"class="form-control price"></td>
        <td><input name="item_quantity[]"class="form-control quantity"></td>
        <td><span class="rowtotal">0.00</span></td>
      </tr>
    <tr>
        <td>2</td>
        <td><input name="item_name[]"class="form-control"></td>
        <td><input name="item_description[]"class="form-control"></td>
        <td><input name="item_price[]"class="form-control price"></td>
        <td><input name="item_quantity[]"class="form-control quantity"></td>
        <td><span class="rowtotal">0.00</span></td>
      </tr>
    </table>

现在在我的页面上,它在查看控制台时没有显示任何错误,但它没有执行我在此帖子之后创建的操作“Automatically updating input field with math using jquery?

感谢任何帮助。

TIA

1 个答案:

答案 0 :(得分:1)

你在这一行中有一个错字:

git push origin :old-name-of-branch-on-github
git branch -m old-name-of-branch-on-github new-name-for-branch-you-want
git push origin new-name-for-branch-you-want

应该是:

var price = parseFloat($(this).closest('.tr').find('.price').val(),10),
                                        ^^ Shouldn't be a class selector

下一行很好。此外,您可以使用以下命令替换所有这些事件:

var price = parseFloat($(this).closest('tr').find('.price').val(),10),

您还有其他一些问题:

  1. $(":input").on("input", function() { // Triggers on any input event }); 没有超载,需要两个参数
  2. 您正在使用parseFloat来设置范围的文本。您需要使用.val()代替
  3. 您应该缓存.text()选择器。你不需要每次都找到它。
  4. <tr>

    Working Example