JQuery表行删除错误

时间:2015-05-23 09:17:32

标签: php jquery html-table

我是jQuery的新手,我在jQuery表中工作。当我添加第0行,第1行和第2行并删除第2行时,一切都很好。问题是当我删除第0行或第1行时。如果我删除第0行,那么它只是返回索引行1.当我删除第1行时,它返回索引行0。

jQuery(function () {
  var i = -1;
  function updateTotal() {
    var total = 0;
    $('.qty').each(function () {
        var $this = $(this);
        var qty = parseInt($this.val());
        var index = $(this).prop('name').match(/\[(.*?)\]/)[1];
        var price = $('input[name^=price]').eq(index).val();
        var t = document.getElementById('tab');
        var val1 = $(t.rows[parseInt(index)+1].cells[0]).text();
        alert(index);
        $.get('engine.php?kode='+val1+'&button=getStock' , function(data) {
            if(qty > 0 && qty <= data) {
                $('input[name^=sub]').eq(index).val(price*qty);
                total += parseInt(price*qty);
            }
            else {
                alert("wrong quantity");
                $('.qty').eq(index).val("1");
                $('input[name^=sub]').eq(index).val(price);
                total = total+parseInt(price);
            }
            $('.total').text(total);
        });
    })
} 


$('#tab').on('change', '.qty', function(){
    updateTotal();
});

$('input[name=barcode]').keydown(function(e) {
    var code = (e.keyCode ? e.keyCode : e.which);
    if(code==13) {
        i = i+1;
        var $this = $(this);
        var code = $(".barcode").val();
        $.get('engine.php?kode='+code +'&button=getData' , function(data) {
            var arrayObj = JSON.parse(data);
            var k=0; 
            var arr = [];
            $.each(arrayObj , function(key, value) {
                arr[k] = value;
                k++;
            });
            var newRow = $("<tr align='center'><td class='code'>" + $this.val() + "</td>" +
            "<td> "+arr[0]+" </td> <td> "+arr[1]+" </td> "+
            " <td><input class='price' required type='text' name='price["+(i)+"]' size='10' maxlength='9' pattern='.{1,9}' value='"+arr[2]+"'> </td> <td class='stok'> "+arr[3]+" </td>"+
            " <td> <input class='qty' required type='text' name='qty["+(i)+"]' size='3' maxlength='4' pattern='.{1,4}' value='1'> </td> "+
            "<td><input type='text' name='sub["+(i)+"]' size='10' value='"+arr[2]+"' disabled></td>"+
            "<td><a href='#' class='remove'><font color='0404B4'>Cancel</font></a></td>"+
            "<input type='hidden' name='code[]' value='"+code+"'></tr>");
            var row = $('#tab > tbody > tr').eq(i);
            if (row.length) {
                row.after(newRow);
            } else {
                $('#tab > tbody').append(newRow);
            }
            updateTotal();
        });
        return false;
    }
  });

  $('#tab').on('click', '.remove', function(){
    $(this).closest("tr").remove();
    updateTotal();
  });
});

0 个答案:

没有答案