button always falls in the same condition

0

I have a code that adds things to the localStorage, everything works correctly, but the delete part does not work, I'll show the code and explain below.

$(function () {
var operacao = "A"; //"A"=Adição; "E"=Edição
var tbClientes = localStorage.getItem("tbClientes");// Recupera os dados armazenados
tbClientes = JSON.parse(tbClientes); // Converte string para objeto

// Caso não haja conteúdo, iniciamos um vetor vazio
if (tbClientes == null)
    tbClientes = [];

tbClientes = tbClientes.map(c => JSON.parse(c));

$("#btCadastrarC").on("click", function () {
    if ($("#inNome").val() === "" || ($("#inCPF").val() === "" || ($("#inTelefone").val() === ""))) {
        $("#algoErrado").text("Preencha os campos corretamente").css({ 'color': 'red', 'opacity': '0.5', 'font-size': '12px' });
        return;
    } else if (operacao == "A") {
        if (Adicionar(tbClientes))
            alert("Cadastrado com sucesso!")
    }
});

Listar(tbClientes);

$("#tabelaCliente").on("click", "button", function () {
    var certeza = confirm("Tem certeza que deseja excluir?")
    if (certeza === true ) {
    Excluir(tbClientes, this.id);
    Listar(tbClientes);
} else {
    return
}
});


function guid() {
function s4() {
  return Math.floor((1 + Math.random()) * 0x10000)
    .toString(16)
    .substring(1);
}
return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
}

function Adicionar(tbClientes) {

var cliente = JSON.stringify({
    Id: guid(),
    Nome: $("#inNome").val(),
    CPF: $("#inCPF").val(),
    Telefone: $("#inTelefone").val(),
    Email: $("#inEmail").val(),
    Endereço: $("#inEndereco").val(),
    Numero: $("#inNumero").val()
});
tbClientes.push(cliente);
console.log("tbClientes - " + tbClientes);
localStorage.setItem("tbClientes", JSON.stringify(tbClientes));
return true;
}

function Excluir(tbClientes, id) {
var indice_selecionado = tbClientes
    .findIndex(c => c.Id === id);

if (indice_selecionado === -1)
    return;

tbClientes.splice(indice_selecionado, 1);
localStorage.setItem("tbClientes", JSON.stringify(tbClientes));
alert("Cadastro excluído");
}

function Listar(tbClientes) {
$("#tabelaCliente").html(
    "<thead>" +
    "   <tr>" +
    "   <th>Nome</th>" +
    "   <th>CPF</th>" +
    "   <th>Telefone</th>" +
    "   <th>Email</th>" +
    "   <th>Endereço</th>" +
    "   <th>Opções</th>" +
    "   </tr>" +
    "</thead>" +
    "<tbody>" +
    "</tbody>"
);
for (var i in tbClientes) {
    var cli = tbClientes[i];
    $("#tabelaCliente tbody").append("<tr>");
    $("#tabelaCliente tbody").append("<td>" + cli.Nome + "</td>");
    $("#tabelaCliente tbody").append("<td>" + cli.CPF + "</td>");
    $("#tabelaCliente tbody").append("<td>" + cli.Telefone + "</td>");
    $("#tabelaCliente tbody").append("<td>" + cli.Email + "</td>");
    $("#tabelaCliente tbody").append("<td>" + cli.Endereço + " nº " + cli.Numero + "</td>");
    $("#tabelaCliente tbody").append("<td><button type='button' class='btn btn-danger' id='" + cli.Id + "' >Excluir</button></td>");
    $("#tabelaCliente tbody").append("</tr>");
}
}

});

When I try to delete by clicking the button that is generated by the following code:

 $("#tabelaCliente tbody").append("<td><button type='button' class='btn btn-danger' id='" + cli.Id + "' >Excluir</button></td>");

Nothing happens, does not delete and does not show any error in the console, I believe what is wrong would be this part:

function Excluir(tbClientes, id) {
var indice_selecionado = tbClientes
.findIndex(c => c.Id === id);

if (indice_selecionado === -1)
return;

tbClientes.splice(indice_selecionado, 1);
localStorage.setItem("tbClientes", JSON.stringify(tbClientes));
alert("Cadastro excluído");
}

I believe you're falling on the

if(indice_selecionado === -1) 
return

But how can I resolve this problem?

    
asked by anonymous 13.11.2018 / 13:50

0 answers