Javascript 如何在使用jquery插入相同记录时更新表

Javascript 如何在使用jquery插入相同记录时更新表,javascript,jquery,Javascript,Jquery,我正在创建POS应用程序,当我从自动完成产品数据库中选择产品时,如索尼默认数量为1,当再次选择此产品时,索尼我希望下表仅更新数量而不是添加新行更新数量,当相同代码时,请指导我 function addProduct() { var procode_1 = $('#procode_1').val(); var product = { procode: $('#procode_1').val(), prname: $(

我正在创建POS应用程序,当我从自动完成产品数据库中选择产品时,如索尼默认数量为1,当再次选择此产品时,索尼我希望下表仅更新数量而不是添加新行更新数量,当相同代码时,请指导我

function addProduct() {
        var procode_1 = $('#procode_1').val();

        var product = {
            procode: $('#procode_1').val(),
            prname: $('#proname_1').val(),
            qty: $('#qty_1').val(),
            price: $('#price_1').val(),
            tot_cost: $('#totcost_1').val(),
        };

        addRow(product);

        $("#proname_1").val(' ');
    }
function addRow(product) {
var qty = $('#qty').val();
if ($('#procode_1').val().length == 0) {
        $.alert({

            title: "Error",
            content: "Please Enter Stock Code",
            type: "red",
            autoClose: 'ok|2000'

        });
    } else if (!$('#currentstock_1').val() < qty) {
        $.alert({

            title: "Error",
            content: "Product is not enough!",
            type: "red",
            autoClose: 'ok|2000'

        });
    } else {
        sr++;
        $('#productlist').show();
        var $tableB = $('#productlist tbody');
        var $row = $(
            "<tr style='text-align: center;'>" +


            "<td width='5%' style='display: none;'>" + sr + "</td>" +
            "<td width='15%'>" + product.procode + "</td>" +
            "<td width='20%'>" + product.prname + "</td>" +

            "<td width='20%'  >" + product.qty + "</td>" +

            "<td width='5%'   >" + product.price + "</td>" +

            "<td class='totalLinePrice'>" + product.tot_cost + "</td>" +
            "</tr>"
        );

        $row.data("lineitem", product.sr);
        $row.data("procode", product.procode);
        $row.data("prname", product.prname);
        $row.data("qty", product.qty);

        $row.data("price", product.price);

        $row.data("tot_cost", product.tot_cost);

        $tableB.append($row);

        total += Number(product.tot_cost);

        $('#sub_total').val(total);
        $('#total_invoice').val(total);
    }
}

我简化了您的代码,使所有内容都更具可读性。注释应该足以理解它是如何工作的。 我希望它能帮助你

$“添加”。单击函数{ var c=$'code'.val; var q=$‘数量’.val; //重要信息是新的class='qty' 变量$row=$ + +c++ +q++ ; //检查代码是否存在 var=false; $'productlist tbody tr'.eachfunction{ //如果存在具有相同productCode的产品。。。 如果$this.data'procode'==c{ //旗帜存在 存在=真; //更新旧数量内部数据 $this.data'qty',parseIntq+parseInt$this.data'qty'; //使用新值更新表 $'.qty',this.html$this.data'qty'; } }; //如果没有,我们将创建一个新行 如果!存在{ $row.dataprocode,c; $row.dataqty,q; $'productlist tbody'。追加$row; } }; 代码: 数量: 添加 产品代码 数量
感谢您解决了大量问题,此代码非常有帮助。我还想问一件事,如果表格值有10个数量,我选择的项目应该更新11个数量,但在您的代码中只有1个数量正在更新,就像1将更新2不是11。请解决此问题谢谢代码似乎工作正常,如果我将1添加到数量=10的项目中,它将变为11。帕西恩特。。。将字符串转换为整数。使用相同的代码,但具有自动填充超时。