Mostrar ultima linha da tabela pai x filho

Boa tarde, fiz uma tabela pai x filho e quando escolho combustivel, mostra outra tabela abaixo dela (controle de combustivel) e usei o codigo abaixo para mostrar a tabela de controle de combustivel. Depois de adicionado os itens dentro da tabela pai x filho, eu vou no ultimo item e deleto (somente o ultimo), a tabela de controle de combustivel some (independente de qual seja o item escolhido). Alguem sabe o que pode ser e pode me ajudar? Obrigado Att.


function linkabre() {                                   

    var index = $("#indicador").val();
    for (i=1; i<=index; i++) {
    var desc = $("#idDesc___"+i).val();  


    if (desc == "COMBUSTIVEIS") { $(".ControleComb").show(); }
    else if (desc != "COMBUSTIVEIS" && desc == undefined) { $(".ControleComb").hide(); } 

                             }
                    }

1 curtida

Boa tarde Eros!

Muito provavelmente o que está fazendo isto é o .hide() no ‘.controleComb’, minha sugestão é que você avalie pelo DevTools (ou pelo seu próprio código mesmo) onde tem esta classe e faça um debug neste cara, fazendo testes para ver o porque está sumindo.

OK? Vai fazendo estes testes e informando aqui para nós se conseguiu.

Ola Gustavo, obrigado por responder
O problema que a segunda tabela some somente quando deleto o ultimo item da primeira tabela (tabela pai x filho), acho que pode ser um bug da tabela pai x filho
Quando deleto alguma linha do meio ou ate a penultima linha, acontece o que tem que acontecer.
O unico problema é quando deleto a ultima linha da tabela pai x filho.

Olá Eros. Fizemos um teste aqui com pai e filho e o problema não ocorre, peço que faça um teste com um outro formulário, como o processo padrão de listas por exemplo, ou crie um novo formulário simples com o modelo padrão de pai e filho, para ver se o problema ainda ocorre.

Ainda ocorre o problema? Me passe o fonte pra eu dar uma olhada.

ja corrigi aqui, na verdade tava faltando chamar a função dentro do addchild e do fnCustomDelete
obrigado

1 curtida

Provavelmente essa sua função está sendo chamada em um evento onde adiciona e remove um item de sua tabela.

O problema está que se sua última linha for COMBUSTIVEL irá aparecer a sua tabela filho, e apenas a ultima. Seu código faz isso, para que a tabela apareca se alguma linha for combustível terá que mudar seu código para algo assim.


function linkabre() {
  var index = $("#indicador").val(); 
  var hasCombustivel = false;
  for (i=1; i<=index; i++) { 
    hasCombustivel |= $("#idDesc_"+i).val() == "COMBUSTIVEIS";
  } 
  $(".ControleComb").toggle(hasCombustivel);
}

O código abaixo usa o OR EQUAL (|=) para ver se algum item da sua tabela filh é combustível,se for ele exibe a tabela filho, caso contrário ele esconde.