link 的工作不正确

work of link is not proper

我通过编辑和删除在数据表中添加多行link.Suppose我删除第 3 行,然后编辑第 5 行,编辑 link 调用的函数,该函数写在 onclick 事件上的删除 link。 在这里,我在我的代码中添加添加、编辑和删除功能。

function addproduct() {

    if (document.getElementById("p_barcode").value == "" || wrongdata == false) {
        alert("Please Enter valid value of Barcode..!!!");
        return false;
    } else {
        var barcode = document.getElementById("p_barcode").value;
        var quantity = document.getElementById("p_qnty").value;
        var grossamount = document.getElementById("p_grossamount").value;
        var basetax = document.getElementById("p_basetax").value;
        var additionaltax = document.getElementById("p_additionaltax").value;
        var discount = document.getElementById("p_discount").value;
        var netamount = document.getElementById("p_netamount").value;
        var paidamount = document.getElementById("p_paidamount").value;

        var data = barcode + "," + quantity + "," + grossamount + "," + basetax + "," + additionaltax + "," + discount + "," + netamount + "," + paidamount;

        alert(data);

        var productdata = data.split(',');
        var table = $('#addpurchase').DataTable();

        table.row.add(
        [
        productdata[0],
        productdata[1],
        productdata[2],
        productdata[3],
        productdata[4],
        productdata[5],
        productdata[6],
        productdata[7],
        productdata[8] = "<a href='#' onclick='return rowedit();'> Edit </a> / <a href='#' onclick='return rowdelete();'> Delete </a>"])
            .draw();

        document.getElementById("p_barcode").value = "";
        document.getElementById("p_qnty").value = "1";
        document.getElementById("p_grossamount").value = "";
        document.getElementById("p_basetax").value = "";
        document.getElementById("p_additionaltax").value = "";
        document.getElementById("p_discount").value = "";
        document.getElementById("p_netamount").value = "";
        document.getElementById("p_paidamount").value = "";

        return false;
    }

}

function rowdelete() {

    var table = $('#addpurchase').DataTable();

    $('#addpurchase tbody').on('click', 'a', function () {
        var tr = $(this).closest("tr");
        var rowindex = tr.index();
        //alert(rowindex);
        table.row(rowindex).remove().draw(false);
    });
    return false;

}

function rowedit() {

    var table = $('#addpurchase').DataTable();

    $('#addpurchase tbody').on('click', 'a', function () {
        var tr = $(this).closest("tr");
        var rowindex = tr.index();
        alert(rowindex);
        var fetchdata = table.row(rowindex).data();
        alert(table.row(rowindex).data());

        document.getElementById("p_barcode").value = fetchdata[0];
        document.getElementById("p_qnty").value = fetchdata[1];
        document.getElementById("p_grossamount").value = fetchdata[2];
        document.getElementById("p_basetax").value = fetchdata[3];
        document.getElementById("p_additionaltax").value = fetchdata[4];
        document.getElementById("p_discount").value = fetchdata[5];
        document.getElementById("p_netamount").value = fetchdata[6];
        document.getElementById("p_paidamount").value = fetchdata[7];

        table.row(rowindex).remove().draw(false);

    });
    return false;

}

您正在调用不同的函数,但具有相同的事件侦听器。您需要将代码更改为此并尝试:

用下面的代码替换函数rowedit()rowdelete()

$(document).ready(function(){
  $('#addpurchase tbody').on('click', 'a', function() {
    var action = $(this).data('action'); //Or you can use var action = $(this).attr('data-action');
      var tr = $(this).closest("tr");
      var rowindex = tr.index();
      if(action == 'edit'){
            //YOUR EDIT CODE
      }else{
            //YOUR DELETE CODE
      }

  });
});

并在 addproduct() 函数中更改以下行:

productdata[8] = "<a href='#' data-action='edit'> Edit </a> / <a href='#' data-action='delete'> Delete </a>" ])