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

Problemas IE, remoção de campos dinamicos, etc...


dinhotaswolf

Pergunta

Olá pessoal!

Sou novo no fórum e estou com alguns problemas no código abaixo

<!--

// declaração de variáveis

var qtdeCampos = 0;

// função para o campo aceitar somente números

function Numero(e) {

navegador = /msie/i.test(navigator.userAgent);

if (navegador) {

var tecla = event.keyCode;

} else {

var tecla = e.which;

if (tecla > 47 && tecla < 58) { // numeros de 0 a 9

return true;

} else {

if (tecla != 2 || tecla != 3 || tecla != 8 || tecla != 127) { // teclas home, end, backspace e delete

return false;

} else {

return true;

}

}

}

}

// função para adicionar campos ao formulário

function addCampos() {

if (qtdeCampos < 10) {

var objPai = document.getElementById("campoPai");

//Criando o elemento DIV;

var objFilho = document.createElement("div");

//Definindo atributos ao objFilho:

objFilho.setAttribute("id","filho"+qtdeCampos);

//Inserindo o elemento no pai:

objPai.appendChild(objFilho);

//Escrevendo algo no filho recém-criado:

document.getElementById("filho"+qtdeCampos).innerHTML = '<table width="535" align="center" border="0"><tr><td width="70" bgcolor="#A9D9B1"><center><input type="text" size="5" name="tipo[]'+qtdeCampos+'" id="tipo'+qtdeCampos+'" /></center></td><td width="90" bgcolor="#A9D9B1"><center><input type="text" size="5" name="comp[]'+qtdeCampos+'" id="comp'+qtdeCampos+'" onkeypress="return Numero(event);" /></center></td><td width="90" bgcolor="#A9D9B1"><center><input type="text" size="5" name="larg[]'+qtdeCampos+'" id="larg'+qtdeCampos+'" onkeypress="return Numero(event);" /></center></td><td width="70" bgcolor="#A9D9B1"><center><input type="text" size="5" name="acab[]'+qtdeCampos+'" id="acab'+qtdeCampos+'" /></center></td><td width="70" bgcolor="#A9D9B1"><center><input type="text" size="5" name="qtd[]'+qtdeCampos+'" id="qtd'+qtdeCampos+'" onkeypress="return Numero(event);" /></center></td><td width="70" bgcolor="#A9D9B1"><center><select name="item[]'+qtdeCampos+'" id="item'+qtdeCampos+'"><option value="" selected>--------</option><option value="Peça">Peça</option><option value="Metro">Metro</option></select></center></td><td width="15" bgcolor="#A9D9B1"><center><input type="image" src="ico/x.gif" onclick="removerCampo('+qtdeCampos+')" title="Apagar produto"></center></td></tr></table>';

qtdeCampos++;

}

}

// função para remover um campos do formulário

function removerCampo(id) {

var objPai = document.getElementById("campoPai");

var objFilho = document.getElementById("filho"+id);

//Removendo o DIV com id específico do nó-pai:

var removido = objPai.removeChild(objFilho);

qtdeCampos -= qtdeCampos;

}

// função para apagar todos os campos adicionados ao formulário

function removeTodosCampos(id) {

var i = 1;

do {

var objPai = document.getElementById("campoPai");

var objFilho = document.getElementById("filho"+id);

//Removendo o DIV com id específico do nó-pai:

var removido = objPai.removeChild(objFilho);

i++

} while (i > id)

alert("Valor da variável id: "+id+". Valor da variável i: "+i+". Quantidade de campos do formulário: "+qtdeCampos+".");

}

-->

Listarei aqui os problemas que tenho referentes a esse código.

1 - O internet explorer não reconhece o código (FireFox e Chrome funcionam normalmente);

2 - Não consigo remover todos os campos de uma vez (removeTodosCampos(id));

3 - Gostaria de enviar dados para o email na sequencia [tipo comp larg acab qtd item];

4 - Tenho que criar um array ordenado na ordem acima para envio dos dados para o email;

5 - Meu formmail pega todos os dados do form menos os campos criados por esse código;

6 - Quando removo um campo e tento colocar outro no lugar, ora ele adiciona, ora tem que apertar várias vezes para conseguir adicionar novamente os campos (tem alguma maneira de evitar que isso aconteça).

Fico grato por qualquer tipo de ajuda.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá pessoal!

O problema de número 2 foi solucionado adicionando ao <table> uma classe chamada "rows" e utilizando o código abaixo:

function removeTodosCampos() {

$(".rows").remove();

qtdeCampos = 0;

}

1 - O internet explorer não reconhece o código (FireFox e Chrome funcionam normalmente);

2 - Não consigo remover todos os campos de uma vez (removeTodosCampos(id)); - solucionado com o código acima

3 - Gostaria de enviar dados para o email na sequencia [tipo comp larg acab qtd item];

4 - Tenho que criar um array ordenado na ordem acima para envio dos dados para o email;

5 - Meu formmail pega todos os dados do form menos os campos criados por esse código;

6 - Quando removo um campo e tento colocar outro no lugar, ora ele adiciona, ora tem que apertar várias vezes para conseguir adicionar novamente os campos (tem alguma maneira de evitar que isso aconteça).

Fico grato por qualquer ajuda nos problemas restantes.

Editado por dinhotaswolf
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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...