0

My code is not recognizing the click on <a href="javascript:void(0);">Inserir</a> element inside a HTML Table that are populate dynamically. I dont know what is wrong, because I have already use this code in others javascript function. Please, can anyone helps me?

My table body is populate dynamically with this script:

function atualizarTabelaInserirPnEmbalagem() {
    $.ajax({
        type: "POST",
        async: true,
        url: urlInit + "/Quotation/Check_Item_Embalagem",
        data: { RefCotacao: $('#refCotacao').val() },
        success: function (data) {
            if (data.found) {
                $("#tableEid-body").empty();
                var itensEmbalagem = data.itensEmb;
                var partN = data.infoC;
                var qtds = data.qtdItens;
                var id = $("#idEmbalagemPN")[0].innerText;
                for (var i = 0; i < partN.length; i++) {
                    var qtdNestaEmbalagem = 0;
                    var partNumber = partN[i].PartNumber;

                    try {
                        if (itensEmbalagem[i].Qtd !== null && itensEmbalagem[i].IDEmbalagem == id) {
                            qtdNestaEmbalagem = itensEmbalagem[i].Qtd;
                        }
                    } catch (e) {
                        qtdNestaEmbalagem = 0;
                    }
                    
                    var qtdSolicitada = partN[i].Qtd;

                    var body = $("#tableEid-body");
                    var bodyRow = "";
                    bodyRow += "<tr>"
                    bodyRow += "<td><center>" + partNumber + "</center></td>"
                    bodyRow += "<td><center>" + qtdSolicitada + "</center></td>"
                    bodyRow += "<td><center>" + qtdNestaEmbalagem + "</center></td>"
                    bodyRow += "<td><center>" + qtds[i] + "</center></td>"
                    bodyRow += "<td><center>" + "<input type=" + "number" + " class=" + "form-control" + " />" + "</center></td>"
                    bodyRow += "<td>" + "<a href=" + "javascript:void(0);" + ">Inserir</a>" + "</td>"
                    bodyRow += "</tr>";
                    body.append(bodyRow);
                }
            }
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert("Error1 - " + textStatus)
            alert("Error2 - " + jqXHR.responseText)
            alert("Error3 - " + errorThrown)
        }
    });
}

Here is my table in HTML with all Headers inside thead element:

                <table class="tableEmbalagem table table-hover table-bordered" id="tableEid" style="background-color: white !important">
                    <thead>
                        <tr>
                            <th>
                                <center>
                                    PART NUMBER
                                </center>
                            </th>
                            <th>
                                <center>
                                    QUANTIDADE SOLICITADA
                                </center>
                            </th>
                            <th>
                                <center>
                                    QUANTIDADE NESTA EMBALAGEM
                                </center>
                            </th>
                            <th>
                                <center>
                                    QUANTIDADE TOTAL INSERIDA
                                </center>
                            </th>
                            <th>
                                <center>
                                    QUANTIDADE A INSERIR
                                </center>
                            </th>
                            <th></th>
                        </tr>
                    </thead>
                    <tbody id="tableEid-body"></tbody>
                </table>

And here is my script to click in <a href="javascript:void(0);">Inserir</a> element:

$(".tableEmbalagem tbody tr td a").on('click', function (e) {
    //get Index of row
    var rowIndex = $(this).closest('tr').index();
    var qtdPN = "";

    //get qtd inside embalagem
    $(this).closest('tr').find("input").each(function () {
        qtdPN = this.value;
    });

    //get PN
    var table = document.getElementById('tableEid');
    var PN = table.rows[rowIndex].cells[0].innerText.trim();

    //get embalagem ID
    var idEmbalagem = $('#idEmbalagemPN').text();

    //get refCotacao
    var refCotacao = $('#refCotacao').val();

    $.ajax({
        type: 'POST',
        url: urlInit + '/Quotation/saveItemEmbalagem',
        data: {
            PN: PN,
            qtdPN: qtdPN,
            idEmbalagem: idEmbalagem,
            refCotacao: refCotacao,
        },
        processData: true,
        success: function (response) {
            alert(response.message);
        },
    });
});
Daniel Villar
  • 151
  • 1
  • 12

0 Answers0