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.