Jump to content
Fórum Script Brasil
  • 0

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


dinhotaswolf

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

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

Edited by dinhotaswolf
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...