Use splice () to remove an array from the value of an input hidden

0

I've taken a user's code from here ( add / remove array to an input hidden ), I added a few things and even tried to modify how users who responded suggested, but I could not remove the value array from the removed product.

var strong = $('#total'),
total = 0.00;
prod_array = []; // Array de produtos
$('#add_produto').on('click', function () {

   var table = $('#cesta_produtos tbody'), // Tabela de produtos  
   list = $('#lista_produtos').html(), // Select com a lista de produtos
   quant = parseInt($('#mudeValor').val()), // Campo com a quantidade de produtos
   preco = parseFloat($('#preco').val()),

   // Link para remover o produto
   input_hidden = $('#products_array');

   preco = preco * quant;
   preco = parseFloat(preco.toFixed(2));

   // Remove a mensagem de cesta vazia depois que produto é adicionado
   $('#cesta_vazia').remove();
   // Insere o produto selecionado no select list dentro da tabela
   table.append("<tr><td>" + quant + "</td><td>x</td><td>" + list + "</td><td>R$ </td><td>" + preco + "</td><td><a href='#' class='del_produto'><i><strong>X</strong></i></a></td></tr>");
   prod_array.push("[" + quant + "]" + "[" + list + "]");
   input_hidden.val(prod_array);
   console.log("novo produto adicionado :)");
   console.log(input_hidden.val());

   strong = $('#total'),
   total = total + preco;
   total = parseFloat(total.toFixed(2));
   $('#totalold').remove();
   strong.append("<strong id='totalold'>" + total + "</strong>");
});

// Remoção de produtos da tabela
$(document).on('click', '.del_produto', function (e) {
   e.preventDefault();

   var tr = $(this).closest('tr'); //seleciona a tr
   var quant = tr.find('td').eq(0).html(); // seleciona a quantidade
   var list = tr.find('td').eq(2).html(); // seleciona o produto

   strong = $('#total'),
   total = total - preco;
   total = parseFloat(total.toFixed(2));
   $('#totalold').remove();
   strong.append("<strong id='totalold'>" + total + "</strong>");

   //procura a posição no array
   var index = prod_array.indexOf("[" + quant + "]" + "[" + list + "]");
   prod_array.splice(index, 2);//remove do array
   tr.remove(); //remove a linha
   console.log("produto removido :(");
   console.log(prod_array);

});
    
asked by anonymous 08.12.2017 / 18:36

0 answers