Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wilian

Problemas ao criar campo sob demanda

Recommended Posts

Eae pessoal, beleza?

 

Com a necessidade de criar campos sob demanda, comecei a brincar um pouco com javascript e até tive algum sucesso, mas, o código que criei não funciona no Internet Explorer. No firefox funciona normalmente. Procurei um bucado sobre o assunto pelo google, encontrei alguns artigos a respeito mas não consegui entender este "bug" do IE.

 

Se alguem puder dar uma luz, agradeço! :)

 

Abraço

 

Segue o código:

function adiciona_contato ( obj_id ){	  var field_name1 = "contato["+ adiciona_contato_proximo +"][nome]";	  var field_name2 = "contato["+ adiciona_contato_proximo +"][email]";	  var field_name3 = "contato["+ adiciona_contato_proximo +"][ddd]";	  var field_name4 = "contato["+ adiciona_contato_proximo +"][celular]";	  var field_name5 = "contato["+ adiciona_contato_proximo +"][cargo]";			var nome = document.createElement('INPUT');   		nome.setAttribute('type','text');   		nome.setAttribute('name', field_name1 );   		nome.setAttribute('class','forms'); 		nome.setAttribute('size','30');	 				var email = document.createElement('INPUT');   		email.setAttribute('type','text');   		email.setAttribute('name', field_name2 );   		email.setAttribute('class','forms'); 		email.setAttribute('size','26');   				var ddd = document.createElement('INPUT');   		ddd.setAttribute('type','text');   		ddd.setAttribute('name', field_name3 );   		ddd.setAttribute('class','forms'); 		ddd.setAttribute('maxlength','3'); 		ddd.setAttribute('size','6');				var celular = document.createElement('INPUT');   		celular.setAttribute('type','text');   		celular.setAttribute('name', field_name4 );   		celular.setAttribute('class','forms'); 		celular.setAttribute('maxlength','8'); 		celular.setAttribute('size','15');				var cargo = document.createElement('INPUT');   		cargo.setAttribute('type','text');   		cargo.setAttribute('name', field_name5 );   		cargo.setAttribute('class','forms'); 		cargo.setAttribute('size','22');				var tr1 = document.createElement('TR');   		var td1 = document.createElement('TD');   		var td2 = document.createElement('TD');   		var td3 = document.createElement('TD');   		var td4 = document.createElement('TD');   		var td5 = document.createElement('TD');   	   		td1.appendChild(nome);		td2.appendChild(email);		td3.appendChild(ddd);		td4.appendChild(celular);		td5.appendChild(cargo);	   			tr1.appendChild(td1);		tr1.appendChild(td2);		tr1.appendChild(td3);		tr1.appendChild(td4);		tr1.appendChild(td5);			   document.getElementById( obj_id ).appendChild(tr1);		   adiciona_contato_proximo ++;}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá erro no IE ? Ou só não faz ?Eu lembro que alguma propridade não funciona no IE, agora não lembro se é setAttribute ou getAttribute ou addEventListener ... memória de passarinho sabe...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual erro você esta recebendo?Lembro que o metodo setAttribute possui algumas particulariedades, exemplo, para o IE ao invés de class use className, no metodo createElement você pode passar atributos html e etc, olhando superficialmente seu código não notei nada que não o faça funiconar (com exeção da atribuição class)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cria uma tabela também. Pelo que eu vi, você só criou as colunas e as linhas da tabela. Quando for criar a tabela, crie também um tbody e adicione as td e tr nela, depois coloque a tbody na tabela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!

 

Então, já tinha feito isso antes, criar uma table e um tbody logo na sequencia e não havia funcionado, não lembro se tinha dado algum erro, porém, não sei o que deu na minha cabeça de ver o forum agora, 8hrs da manhã de um domingo hehe, vi esse teu post, Lex, e resolvi tentar novamente e por increça que parível, deu certo! :D

 

Vou colocar o código aqui, se alguma pessoa estiver com a mesma dúvida, já ve como é e, talvez sane sua dúvida.

 

Grato pela ajuda de todos.

 

Abraços

Wilian

 

adiciona_contato_proximo = 1;function adiciona_contato ( obj_id ){	var field_name1 = "contato["+ adiciona_contato_proximo +"][nome]";	var field_name2 = "contato["+ adiciona_contato_proximo +"][email]";	var field_name3 = "contato["+ adiciona_contato_proximo +"][ddd]";	var field_name4 = "contato["+ adiciona_contato_proximo +"][telefone]";	var field_name5 = "contato["+ adiciona_contato_proximo +"][cargo]";	var nome = document.createElement('INPUT');   	nome.setAttribute('type','text');   	nome.setAttribute('name', field_name1 );   	nome.setAttribute('class','forms'); 	nome.setAttribute('size','28');	 		var email = document.createElement('INPUT');   	email.setAttribute('type','text');   	email.setAttribute('name', field_name2 );   	email.setAttribute('class','forms'); 	email.setAttribute('size','24	');   		var ddd = document.createElement('INPUT');   	ddd.setAttribute('type','text');   	ddd.setAttribute('name', field_name3 );   	ddd.setAttribute('class','forms'); 	ddd.setAttribute('maxlength','3'); 	ddd.setAttribute('size','5');		var telefone = document.createElement('INPUT');   	telefone.setAttribute('type','text');   	telefone.setAttribute('name', field_name4 );   	telefone.setAttribute('class','forms'); 	telefone.setAttribute('maxlength','8'); 	telefone.setAttribute('size','13');		var cargo = document.createElement('INPUT');   	cargo.setAttribute('type','text');   	cargo.setAttribute('name', field_name5 );   	cargo.setAttribute('class','forms'); 	cargo.setAttribute('size','20');			var table = document.createElement('TABLE'); 	var tbody = document.createElement('TBODY');   	var tr1 = document.createElement('TR');   	var td1 = document.createElement('TD');   	var td2 = document.createElement('TD');   	var td3 = document.createElement('TD');   	var td4 = document.createElement('TD');   	var td5 = document.createElement('TD');         	td1.appendChild(nome);   	td2.appendChild(email);   	td3.appendChild(ddd);   	td4.appendChild(telefone);   	td5.appendChild(cargo);   	   	table.appendChild(tbody);   	tbody.appendChild(tr1);	tr1.appendChild(td1);	tr1.appendChild(td2);	tr1.appendChild(td3);	tr1.appendChild(td4);	tr1.appendChild(td5);		document.getElementById( obj_id ).appendChild(table);			adiciona_contato_proximo ++;}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.