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

(resolvido) Remover Elemento (sem Id/name)


ESerra

Pergunta

Peguei um código que gera campos novos dinamicamente, fiz as correções para que a função que remove os campos criados também funcionasse, ela está removendo, só que, quando um campo é criado, também é criado um <br> para quebrar a linha e os campos aparecem um abaixo do outro, a função que remove os campos está removendo tudo, menos o <br>, pois eu não faço a mínima idéia de como identificar um elemento que não tem ID nem NAME... alguma idéia (pensei em usar divs, mas no isso vai prejudicar o código em si...)???

<html>

<head>

&lt;script type="text/javascript">

var id = 1;

function novoCampo(){

var inp = document.createElement("input");

inp.setAttribute("id", id );

var lab = document.createElement("label");

lab.setAttribute("id", "l"+id);

var lab_content = document.createTextNode("Campo de Texto " + id + " ");

var quebra = document.createElement("br");

lab.appendChild(lab_content);

var inpP = document.getElementById(id-1);

var parentInp = inpP.parentNode;

parentInp.insertBefore(lab, inpP.nextSibling);

parentInp.insertBefore(inp, lab.nextSibling);

parentInp.insertBefore(quebra, lab);

++id;

document.getElementById("totimputs").value = id;

}

</script>

&lt;script type="text/javascript">

function deletaCampo(){

if (id >= 2){

--id;

var d = document.getElementById("formulario");

var bt = document.getElementById(id);

var bt2 = document.getElementById("l"+id);

d.removeChild(bt);

d.removeChild(bt2);

document.getElementById("totimputs").value = id;

}

}

</script>

</head>

<body>

<form name="form1" method="post" id="formulario" action="">

<input type="text" name="totimputs" id="totimputs" value="1"><br />

<label id="l0">Campo de Texto 0</label>

<input type="text" name="textfield" id="0"><br />

<input type="submit" name="Submit" value="+ 1 Campo" onClick="novoCampo();return false;">

<input type="button" name="Submit" value="Remover" onClick="deletaCampo();return false;">

</form>

</body>

</html>

Ps.: Usei a tag quote para poder destacar, a linha em vermelho é a responsável por adicionar a quebra de linha, e a parte em azul é a função que remove os elementos criados...

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Eu estou fazendo o possível pra usar o mínimo de tabelas, pois hoje em dia com esse "modismo" do tableless usar tabela pra tudo que é coisa queima o filme...

Bom de qualquer maneira com a dica do flavio, e uma ajuda providencial do todo poderoso consegui, depois de ler a dica do flavio, tentei e não funcionou, ai fui para o google ver se tinha algo mais, de cara cai nesse site, ai lá eu vi que tinha um parâmetro a mais para ser passado na função, pronto, só foi adicionar o item e funcionou perfeitamente, abaixo como ficou a função deletaCampo após a alteração:

<script type="text/javascript">
function deletaCampo(){

if (id >= 2){
  --id;
  var d = document.getElementById("formulario");
  var bt = document.getElementById(id);
  var bt2 = document.getElementById("l"+id);
  var bt3 = document.getElementsByTagName("BR").item(id);
  d.removeChild(bt);
  d.removeChild(bt2);
  d.removeChild(bt3); 
  document.getElementById("totimputs").value = id;
}
}
</script>

Só pra acrescentar que testei no IE6 e FF 2.0.07 c/ Firebug ativado.

Grato a todos pela ajuda.

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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...