Guest --MARC_DIAS -- Postado Junho 27, 2007 Denunciar Share Postado Junho 27, 2007 tenho a função abaixo que gera uma tabela com uma soma, gostaria de ajuda na rotina de exclusão das linhas, excluir a linha até já funciona mas preciso identificar na linha o valor e tirar esse valor do total...****script javascript********** function AddLinhaPagamento(){ var vlr; var vlrTotal; var coluna1; var table1 = document.getElementById("tabela4"); totLinhas = table1.rows.length -1; var linha = table1.insertRow(totLinhas); var escolha = document.servico.txtPagamento.value; coluna1 = linha.insertCell(-1); coluna1.className = "celula1"; coluna1.innerHTML = '<input type="text" readonly id="numero" name="numero" value="' + totLinhas + '" />'; coluna1 = linha.insertCell(-1); coluna1.className = "celula1"; coluna1.innerHTML = '<input type="text" readonly name="teste" value="' + document.getElementById("txtPagamento").value+ '" />'; coluna1 = linha.insertCell(-1); coluna1.className = "celula1"; coluna1.innerHTML = '<input type="text" readonly name="teste" style="width=80px;text-align:right" value="' + document.getElementById("txtValor_Pagto").value+ '" />'; coluna1 = linha.insertCell(-1); coluna1.className = "celula1"; coluna1.innerHTML = '<input type="button" style="width=60px" onClick="RemoveLinhaPagamento(this)" value="Excluir" />'; vlr = document.servico.txtValor_Pagto.value.replace(".","") vlr = vlr.replace(",",".") vlrTotal = document.servico.totPag.value; soma = parseFloat(vlrTotal) + parseFloat(vlr); document.servico.totPag.value = (soma.toFixed(2)); document.servico.Qtd.value = totLinhas; } function RemoveLinhaPagamento(objeto) { tabela = document.getElementById("tabela4"); if(objeto) tabela.deleteRow(objeto.parentNode.parentNode.rowIndex); } ******html*************** <div id="centro"> <table width="70%" border="0" > <tr> <th>Pagamento</th> <th>Valor</th> <th> </th> </tr> <td><select name="txtPagamento" id="txtPagamento" style="margin-left:3px; width:120px;"><option value="0">Selecione</option><option value="Dinheiro">Dinheiro</option><option value="Cheque Vista">Cheque a vista</option><option value="Cheque Pré">Cheque Pré</option><option value="Cartão Crédito">Cartão Crédito</option><option value="Cartão Débito">Cartão Débito</option></select></td> <td><input type="text" name="txtValor_Pagto" id="txtValor_Pagto" style="width=80px;text-align:right" onKeyPress="return(currencyFormat(this,'.',',',event))" onFocus="this.style.backgroundColor='#ffe'" onblur="this.style.backgroundColor=''"></td> <td><input type="text" name="txtDt_Pagto" id="txtDt_Pagto" style="width=80px;text-align:right"></td> <td><input type="text" name="txtRef_Pagto" id="txtRef_Pagto" style="width=220px;text-align:left" onFocus="this.style.backgroundColor='#ffe'" onblur="this.style.backgroundColor=''"></td> <td><input type="button" value="+" onclick="AddLinhaPagamento()" /></td> </tr> </table> <div id="divTabelaPagamento" style="display:none"> <table id="tabela4"> <tr> <th class="cinza_titulo">Nº:</th> <th class="cinza_titulo">Pagto</th> <th class="cinza_titulo">Valor</th> <th class="cinza_titulo">Depositar em</th> <th class="cinza_titulo">Observação do pagamento</th> </tr> <tr> <td colspan="2" class="cinza_titulo">Total</td> <td><input type="text" id="totPag" name="totPag" class="cinza_titulo" style="width=80px;text-align:right" value="0"></td> <td class="cinza_titulo">Qtd Lanc.</td> <td><input type="text" id="Qtd" name="Qtd" class="cinza_titulo" style="width=80px;text-align:right" value="0"></td> <td><input type="button" style="width=60px;" onclick="LimpaTabelaPagamento()" value="Limpar" /> </tr> </table> </div> </div>não sei se esse é o modo certo de fazer esse tipo de processo, está funcionando certinho mas na hora de excluir umadeterminada linha preciso identificar qual a linha e dentro da linha qual é o valor para acertar o total...Agradeço desde já a atenção dispensada... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Junho 27, 2007 Denunciar Share Postado Junho 27, 2007 Pega o valor do campo que está sendo removido antes, refaça a soma e depois remova a linhaPs.: não abra tópicos iguais. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --MARC_DIAS -- Postado Junho 27, 2007 Denunciar Share Postado Junho 27, 2007 Pega o valor do campo que está sendo removido antes, refaça a soma e depois remova a linhaPs.: não abra tópicos iguais.é exatamente isso que não estou conseguindo fazer, e por este motivo estou pedindo auxilio...porque tópicos iguais??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Junho 27, 2007 Denunciar Share Postado Junho 27, 2007 Este é seu codigo inteiro? Eu testei aqui e não funcionouAs 8:42 tinha um tópico de sua autoria com a mesma duvida que este apenas com um texto adicional no final do codigo, isso é duplicação de tópicos. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --MARC_DIAS -- Postado Junho 27, 2007 Denunciar Share Postado Junho 27, 2007 Este é seu codigo inteiro? Eu testei aqui e não funcionouAs 8:42 tinha um tópico de sua autoria com a mesma duvida que este apenas com um texto adicional no final do codigo, isso é duplicação de tópicos.bom se isso aconteceu devo ter feito algo errado na hora de postar, peço desculpas..sim este é meu código e está funcionando somente separei o html do javascript, na verdade eles estão em arquivos separados... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Junho 27, 2007 Denunciar Share Postado Junho 27, 2007 então, posta o js também! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marc_Dias Postado Junho 27, 2007 Denunciar Share Postado Junho 27, 2007 Andreia, segue o código completo coloquei tudo em uma só pagina....<link href="estiloSistema.css" rel="stylesheet" type="text/css" /><script>function AddLinhaPagamento(){ var vlr; var vlrTotal; var coluna1; obj = document.getElementById('divTabelaPagamento'); if (obj.style.display == "none") obj.style.display = "block"; var table1 = document.getElementById("tabela4"); totLinhas = table1.rows.length -1; var linha = table1.insertRow(totLinhas); var escolha = document.servico.txtPagamento.value; coluna1 = linha.insertCell(-1); coluna1.className = "celula1"; coluna1.innerHTML = '<input type="text" readonly id="numero" name="numero" style="width=20px;" value="' + totLinhas + '" />'; coluna1 = linha.insertCell(-1); coluna1.className = "celula1"; coluna1.innerHTML = '<input type="text" readonly name="teste" style="width=90px;" value="' + document.getElementById("txtPagamento").value+ '" />'; coluna1 = linha.insertCell(-1); coluna1.className = "celula1"; coluna1.innerHTML = '<input type="text" readonly name="teste" style="width=80px;text-align:right" value="' + document.getElementById("txtValor_Pagto").value+ '" />'; coluna1 = linha.insertCell(-1); coluna1.className = "celula1"; coluna1.innerHTML = '<input type="text" readonly name="teste" style="width=80px" value="' + document.getElementById("txtDt_Pagto").value+ '" />'; coluna1 = linha.insertCell(-1); coluna1.className = "celula1"; coluna1.innerHTML = '<input type="text" readonly name="teste" style="width=220px;" value="' + document.getElementById("txtRef_Pagto").value+ '" />'; coluna1 = linha.insertCell(-1); coluna1.className = "celula1"; coluna1.innerHTML = '<input type="button" style="width=60px" onClick="RemoveLinhaPagamento(this)" value="Excluir" />'; vlr = document.servico.txtValor_Pagto.value.replace(".","") vlr = vlr.replace(",",".") vlrTotal = document.servico.totPag.value; soma = parseFloat(vlrTotal) + parseFloat(vlr); document.servico.totPag.value = (soma.toFixed(2)); document.servico.Qtd.value = totLinhas;}function RemoveLinhaPagamento(objeto) { tabela = document.getElementById("tabela4"); if(objeto) tabela.deleteRow(objeto.parentNode.parentNode.rowIndex);}function LimpaTabelaPagamento(){ var table1 = document.getElementById("tabela4"); totLinhas = table1.rows.length - 1; for(i=1;i<totLinhas;i++){ table1.deleteRow(1); } document.getElementById('txtTipoGasto').value=''; document.getElementById('txtQtdGasto').value=''; document.getElementById('txtValorGasto').value=''; obj = document.getElementById('divTabelaPagamento'); if (obj.style.display == "block") obj.style.display = "none";}</script><body><form name="servico" id="servico"><div id="geral"><div id="centro"> <table width="70%" border="0" > <tr> <th class="Fundo_Roxo" style="width=70px">Pagamento</th> <th class="Fundo_Roxo" style="width=70px">Valor</th> <th class="Fundo_Roxo" style="width=70px">Depositar</th> <th class="Fundo_Roxo" style="width=70px">Referencia</th> <th class="Fundo_Roxo" style="width=70px"> </th> </tr> <td><select name="txtPagamento" id="txtPagamento" style="margin-left:3px; width:120px;"><option value="0">Selecione</option><option value="Dinheiro">Dinheiro</option><option value="Cheque Vista">Cheque a vista</option><option value="Cheque Pré">Cheque Pré</option><option value="Cartão Crédito">Cartão Crédito</option><option value="Cartão Débito">Cartão Débito</option></select></td> <td><input type="text" name="txtValor_Pagto" id="txtValor_Pagto" style="width=80px;text-align:right" onFocus="this.style.backgroundColor='#ffe'" onblur="this.style.backgroundColor=''"></td> <td><input type="text" name="txtDt_Pagto" id="txtDt_Pagto" style="width=80px;text-align:right"></td> <td><input type="text" name="txtRef_Pagto" id="txtRef_Pagto" style="width=220px;text-align:left" onFocus="this.style.backgroundColor='#ffe'" onblur="this.style.backgroundColor=''"></td> <td><input type="button" value="+" onclick="AddLinhaPagamento()" /></td> </tr> </table> <div id="divTabelaPagamento" style="display:none"> <table id="tabela4"> <tr> <th class="cinza_titulo">Nº:</th> <th class="cinza_titulo">Pagto</th> <th class="cinza_titulo">Valor</th> <th class="cinza_titulo">Depositar em</th> <th class="cinza_titulo">Observação do pagamento</th> </tr> <tr> <td colspan="2" class="cinza_titulo">Total</td> <td><input type="text" id="totPag" name="totPag" class="cinza_titulo" style="width=80px;text-align:right" value="0"></td> <td class="cinza_titulo">Qtd Lanc.</td> <td><input type="text" id="Qtd" name="Qtd" class="cinza_titulo" style="width=80px;text-align:right" value="0"></td> <td><input type="button" style="width=60px;" onclick="LimpaTabelaPagamento()" value="Limpar" /> </tr> </table> </div></div><!-- fim da parte de pagamento !--></div></form></body> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Junho 27, 2007 Denunciar Share Postado Junho 27, 2007 nossa zuado Marc, desculpe mas eu não encontrei uma forma de identificar cada campo, vamos ver se tem algum colega ++ experiencia que possa te ajudar Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --MARC_DIAS -- Postado Junho 27, 2007 Denunciar Share Postado Junho 27, 2007 nossa zuado Marc, desculpe mas eu não encontrei uma forma de identificar cada campo, vamos ver se tem algum colega ++ experiencia que possa te ajudarvocê acha que o código tá muito incorreto? será que tem uma maneira mais facil de fazer isso?bom de qualquer maneira agradeço muito sua atenção. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mestre SAM Postado Junho 28, 2007 Denunciar Share Postado Junho 28, 2007 e aí Marc,dei uma olhadinha no seu codigo, e tive uma ideia.o seu problema é pegar o valor para ser subtraido não é??!depois que pegar o valor você sabe subtrair e atualizar o campo, certo!?então, assim.é só passar o valor por referencia.sabe o seu botao excluir!? você passa (this) como referencia: onClick="RemoveLinhaPagamento(this)"e poderia passar o valor junto nesta linha, assim: onClick="RemoveLinhaPagamento(this,' + document.getElementById("txtValor_Pagto").value+ ')"agora basta uma pequena alteracao na assinatura do seu metodo,mudando defunction RemoveLinhaPagamento(objeto) {parafunction RemoveLinhaPagamento(objeto,valor) {pronto, ai esta o seu valor da linha a ser deletada,agora é só usar com moderacao.beleza?!sucesso ai. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marc_Dias Postado Junho 28, 2007 Denunciar Share Postado Junho 28, 2007 e aí Marc,dei uma olhadinha no seu codigo, e tive uma ideia.o seu problema é pegar o valor para ser subtraido não é??!depois que pegar o valor você sabe subtrair e atualizar o campo, certo!?então, assim.é só passar o valor por referencia.sabe o seu botao excluir!? você passa (this) como referencia: onClick="RemoveLinhaPagamento(this)"e poderia passar o valor junto nesta linha, assim: onClick="RemoveLinhaPagamento(this,' + document.getElementById("txtValor_Pagto").value+ ')"agora basta uma pequena alteracao na assinatura do seu metodo,mudando defunction RemoveLinhaPagamento(objeto) {parafunction RemoveLinhaPagamento(objeto,valor) {pronto, ai esta o seu valor da linha a ser deletada,agora é só usar com moderacao.beleza?!sucesso ai.Grande Mestre Sam...era isso mesmo agora deu certinho..Agradeço muito sua colaboração e tambem da Andreia... acho que esse tópico será de grande utilidade pra quem tá começando.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Junho 28, 2007 Denunciar Share Postado Junho 28, 2007 ptz eu tinha tentado esse esquema ai mas sempre dava undefined, então eu estava me enrolando nas aspasmas da-le MestreCucaSam =) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest --MARC_DIAS --
tenho a função abaixo que gera uma tabela com uma soma, gostaria de ajuda na rotina de exclusão das linhas, excluir a linha
até já funciona mas preciso identificar na linha o valor e tirar esse valor do total...
não sei se esse é o modo certo de fazer esse tipo de processo, está funcionando certinho mas na hora de excluir uma
determinada linha preciso identificar qual a linha e dentro da linha qual é o valor para acertar o total...
Agradeço desde já a atenção dispensada...
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.