获取所选行中的input元素

时间:2015-12-29 07:17:00

标签: jquery

我有这样的表:

<table class="table table-striped table-bordered">
    <tbody id="itemlist">
        <tr>
            <td><input type="hidden" name="item[code][]" value="1">Fotocopy</td>
            <td><input type="number" class="qty" name="item[qty][]" value="2"></td>
            <td><input type="number" class="price" name="item[price][]" value="200"></td>
            <td><p class="total">400</p></td>
            <td><a href="javascript:void(0);" id="hapus">Hapus</a></td>
        </tr>
        <tr>
            <td><input type="hidden" name="item[code][]" value="1">Download</td>
            <td><input type="number" class="qty" name="item[qty][]" value="2"></td>
            <td><input type="number" class="price" name="item[price][]" value="2000"></td>
            <td><p class="total">4000</p></td>
            <td><a href="javascript:void(0);" id="hapus">Hapus</a></td>
        </tr>
    </tbody>
</table>

如何在所选行上获取所有输入元素,如果我在第二行更改数字字段?

$(document).on('keypress','input.qty', function(e) {
        if(e.keyCode==13){
            e.preventDefault();
            $(this).closest('td').find("input.qty").each(function(index) {
                var x = this.value;
                var price = $(this).closest('tr td').find("input.price").val() ;
                var qty = $("input.qty").val() ;
                var total = price * qty;
                console.log(price);
                //$("p.total").html(total);
                return false;
            });
        }
    });

我为this HERE

创建了一个小提琴

如果有人可以给我一些想法,那将非常有帮助

提前致谢

2 个答案:

答案 0 :(得分:3)

而不是在按键上使用更改功能。 这里的代码可能对您有用。

 $('.qty').on('change',function(){

  var price = $(this).parents('tr').find(".price").val() ;

     var qty = ($(this).val());

    var total = price * qty;

   $(this).parents('tr').find(".total").text(total);
  });
  • 帮助:)

答案 1 :(得分:0)

谢谢@Help,它有效

我几乎没有更改您的代码:

$(document).on('blur','.qty',function(){
  var price = $(this).parents('tr').find(".price").val() ;
  var qty = ($(this).val());
  var total = price * qty;
  $(this).parents('tr').find(".total").html(total);
});