Boa tarde, alguem sabe como faz para limitar uma quantidade de linha da tabela pai x filho para 1?
Exemplo; apos clicar em adicionar, adiciono as linhas A, B e C dentro da tabela pai x filho e quando vou adicionar B novamente, eu queria que nao permitisse, pois ja tem o B la
se eu tentar adicionar B mais de uma vez, nao mostrar na tabela pai x filho, permitir somente 1 campo (linha) para B.
Tentei fazer da forma abaixo e nao consegui, se alguem puder ajudar, ficaria grato.
Obrigado.
function AddChild(tabela){
var index = $("#indicador").val();
for (i=1; i<=index; i++) {
var desc = $("#idDesc___"+i).val();
if (desc == "COMBUSTIVEIS") {
var row = wdkAddChild(tabela); //Adicionar filhos
else {
FLUIGC.toast("#idDesc___" + row,{
title: '',
message: "Número máximo de B é 1",
type: 'danger'
});
}
Ficou meio confusa sua pergunta, você quer adicionar apenas 3 linhas? O que seriam essas linhas A,B e C? No que o $(“#idDesc_”+i).val() implica?
Bom dia Guilherme, eu quero que so de para adicionar uma vez a linha que contenha a descriçao “COMBUSTIVEIS”, se tentar adicionar denovo nao dara
As linhas A, B e C são so um exemplo do que eu queria.
Veja na imagem abaixo:
A linha A, é onde esta COMBUSTIVEIS
A linha B, é onde esta ALIMENTAÇÃO
para entender melhor, em vez de linha A, entenda como linha 1 e linha B, como linha 2 e assim por diante…
Eros, atualizei meu comentário com um código. Verifique se te atende.
Teste o código abaixo: (só fiquei na dúvida se é para adicionar um filho somente quando for igual a COMBUSTIVEIS ou não)
function AddChild(tabela) {
var count = 0;
$("input[id^='idDesc___']").each(function(index, value){
if ($(this).val() == "COMBUSTIVEIS") {
count++;
return false;
}
});
if (count > 0) { // SE já existe "COMBUSTIVEIS"
FLUIGC.toast({
title: '',
message: 'Número máximo de B é 1',
type: 'danger'
});
} else {
wdkAddChild(tabela); //Adicionar filhos
}
}
Eros, segue atualização. Verifique se consegue entender da forma como fiz e se te atende:
// #### Campos para adicionar itens ####
<div class="row">
<div class="form-group col-xs-12 col-sm-12 col-md-3 col-lg-3">
<label class="control-label" for="txt_codProduto">Cod. Produto</label>
<input type="text" class="form-control" name="txt_codProduto" id="txt_codProduto">
</div>
<div class="form-group col-xs-12 col-sm-12 col-md-8 col-lg-8">
<label class="control-label" for="txt_descProduto">Desc. Produto</label>
<input type="text" class="form-control" name="txt_descProduto" id="txt_descProduto">
</div>
<div class="form-group col-xs-12 col-sm-12 col-md-8 col-lg-8">
<label class="control-label"> </label>
<button type="button" class="btn btn-primary" id="btn_addProduto">Adicionar</button>
</div>
</div>
// #### TABLE PAI X FILHO CRIADA ####
<div class="row">
<table class="table table-hover table-condensed table-striped" id="tbProdutos" tablename="tbProdutos" noaddbutton=true addbuttonlabel="Adicionar produto" addbuttonclass="btn btn-primary" nodeletebutton=true >
<thead>
<tr>
<th>Codigo</th>
<th>Produto</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="text" class="form-control" name="txt_tbCodigo" id="txt_tbCodigo" readonly="readonly">
</td>
<td>
<input type="text" class="form-control" name="idDesc" id="idDesc" readonly="readonly">
</td>
</tr>
</tbody>
</table>
</div>
// #### JAVASCRIPT ####
$("#btn_addProduto").on("click", function(e){
$("input[id^='idDesc___']").each(function(index, value){
if ($(this).val() != "COMBUSTIVEIS") {
wdkAddChild("tbProdutos"); //Adicionar filhos
// newId -> é a sequência do pai x filho que retorna da função wdkAddChild
// alimenta Pai x Filho
$("#txt_tbCodigo___" + newId).val($("#txt_codProduto").val());
$("#idDesc___" + newId).val($("#txt_descProduto").val());
// Limpa os campos após inseridos
$("#txt_codProduto").val("");
$("#txt_descProduto").val("");
} else {
FLUIGC.toast({
title: '',
message: 'Número máximo de B é 1',
type: 'danger'
});
}
});
});
Bom dia Gabriel, obriagado por ajudar…
Eu queria que so desse para adicionar a linha que contem “COMBUSTIVEIS” uma vez, as outras podem ser adicionadas normalmente.
Usei este codigo e quando clico botão adicionar itens, nd acontece
Então o IF tem que ficar assim: if ($(this).val() != “COMBUSTIVEIS”) {
Editei o código, tente novamente.
Eu tb tentei com o sinal de diferente e continua nao adicionando as linhas
Quando clico em adicionar, nao adiciona nenhuma
Veja na imagem, que quando nao utilizo estes comandos, as linhas sao adicionadas normalmente
O campo onde está a descrição “COMBUSTIVEIS” está com ID? como está a estrutura do campo? Ou está somente com name?
O campo abaixo de descrição esta com o id e name iguais → idDesc e esta dentro da tabela pai x filho
As linhas que contem combustiveis e alimentação ali na imagem aparecem apos eu clicar em pesquisar
Quando clico em adicionar itens e coloco alimentação por exemplo, vou no console para inspencionar e digito
$(“#idDesc___1”).val();
ai no segundo seria
$(“#idDesc___2”).val();
e assim por diante…
Quando você clica em “Adicionar Itens” é chamada a função AddChild? Ou quando você clica em “Pesquisar”?
Tem como mandar a estrutura da table pra dar uma olhada?
Quando clico em Adicionar itens chama a função Addchild, o pesquisar é so para adicionar o campo COMBUSTIVEL ou Alimentação dentro da descrição
Esse trecho $(“input[id^=‘idDesc___’]”).each( está com problema, pois se houver mais de uma linha ele irá para a próxima iteração e adicionará a linha da mesma forma, podendo adicionar até mais do que uma linha. Ao cair no else você precisa de uma tratativa para encerrar o laço.
Botão de adicionar itens, que fica em cima da tabela pai x filho
< div class="row" id="divBtnItens" >
< div class="col-md-6" >
< input class="btn btn-info" type="button" value="Adicionar Itens" onclick="AddChild('tbItens')" id="btnAddItem" onBlur="somarTotal()"/ >
< /div ><br>
< /div >
Verdade @Guilherme, você está certo. Está com um erro no each. Vou atualizá-lo
Essa aqui é a tabela pai x filho
<div class="row" id="dvItens">
<div class="col-xs-12">
<table tablename="tbItens" id="tbItens" class="table table-bordered" customFnDelete="fnCustomDelete(this)" nodeletebutton="false" addbuttonlabel="Adicionar Itens" addbuttonclass="btn btn-info" noaddbutton="true" border="1">
<thead>
<tr>
<td><b>Descrição</b></td>
<td><b>Data da Despesa</b></td>
<td><b>Valor</b></td>
<td><b>Natureza</b></td>
<td><b>Pesquisar</b></td>
</tr>
</thead>
txt_descProduto é somente um exemplo. Alterei a função AddChild (no comentário), assim como o @Guilherme falou.
continuando…
<tbody>
<tr>
<td> <input name="idDesc" id="idDesc" type="text" value="" readonly="on" class="form-control" /></td>
<td> <input name="idData" id="idData" type="text" class="form-control" onBlur="somarTotal()"/></td>
<td><input name="idVal" id="idVal" type="text" class="form-control" placeholder="R$ 0,00" mask="#00.000.000.000.000,00" onBlur="totalizar(), somarTotal()" /></td>
<td><input name="idNatu" id="idNatu" type="text" class="form-control" onBlur="somarTotal()"/></td>