Ir para conteúdo
Fórum Script Brasil
  • 0

[resolvido] Ajuda Em Função Para Remover Linha De Tabela


Guest --MARC_DIAS --

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...

****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>&nbsp;</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 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

  • 0
Guest --MARC_DIAS --
Pega o valor do campo que está sendo removido antes, refaça a soma e depois remova a linha

Ps.: 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???

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --MARC_DIAS --
Este é seu codigo inteiro? Eu testei aqui e não funcionou

As 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...

Link para o comentário
Compartilhar em outros sites

  • 0

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">&nbsp;</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>

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --MARC_DIAS --
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

você 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.

Link para o comentário
Compartilhar em outros sites

  • 0

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 de

function RemoveLinhaPagamento(objeto) {
para
function RemoveLinhaPagamento(objeto,valor) {

pronto, ai esta o seu valor da linha a ser deletada,

agora é só usar com moderacao.

beleza?!

sucesso ai.

Link para o comentário
Compartilhar em outros sites

  • 0
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 de

function RemoveLinhaPagamento(objeto) {
para
function 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....

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...