Ir para conteúdo

POWERED BY:

Arquivado

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

cassitos

Create Element no IE

Recommended Posts

Fala ae galera,

Estou tentando criar checkbox/radio utilizando o JavaScript (createElement).

Bom, está criando, mas no internet explorer (6.0 que tenho aqui) o radio button não está funcionando, ou seja, eu clico p/ marcar e não marca! O_O

Daí eu peguei o innerHTML do div onde estão os radio's criados e reparei que estão sem o name (e tambem o value). Mas se eu rodar a mesma página e fizer a mesma coisa no Fire Fox ou Opera por exemplo, os atributos aparecem e tudo funciona normal.

E não da erro no IE... o que pode ser? O_O

trecho do código:

function criaElemento(idRoot,tipoEle,idEle,nomeEle,valorEle,textoEle,selEle,cssEle) {  /*idRoot = id do container onde os elementos serão criados   tipoEle = tipo do elemento a ser criado checkbox ou radio   idEle = id base do elemento a ser criado   nomeEle = nome base do elemento a ser criado   valorEle = valor correspondente a propriedade value   textoEle = texto a ser exibido como referência ao elemento criado   selEle = boolean, true ou false, caso o elemento deva ser marcado inicialmente   cssEle = nome da classe CSS para o elemento   */  var objRoot = document.getElementById(idRoot);  if (objRoot) {	var obj = document.createElement("INPUT");	obj.setAttribute("id",idEle);	obj.setAttribute("name",nomeEle);		/*obj.name = nomeEle;	obj.id = idEle;*/	obj.setAttribute("value",valorEle);	obj.setAttribute("type",tipoEle);	if (selEle) {	  obj.defaultChecked = true;	}	if (cssEle) {	  obj.setAttribute("class",cssEle);	}	objRoot.appendChild(obj);	var objTexto = document.createTextNode(textoEle);	objRoot.appendChild(objTexto);	objRoot.appendChild(document.createElement("BR"));  }}
na chamada estou fazendo assim:

criaElemento("divCheck1","radio","chkTeste","chkTeste","0","Texto do CheckBox",true);

Exemplo como fica no IE:

<INPUT id=chkTeste type=checkbox CHECKED>Texto do CheckBox<BR>
Exemplo como fica no FireFox/Opera:

<input checked="checked" value="0" name="chkTeste" id="chkTeste" type="checkbox">Texto do CheckBox<br>
Onde foi que eu errei? ehehehe

Vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

obj.value = 0....pra ver se o IE entende...

Compartilhar este post


Link para o post
Compartilhar em outros sites

A questão do radio é um bug com o IE. Para criar um radio no IE tem que fazer assim:

 

if(document.all && type == "radio")	input = document.createElement("<input type='"+type+"' name='"+name+"' />");

Agora a questão no nome, ele não aparece mesmo no IE, mas é para ele estar lá, testa assim:

alert(document.getElementById("id do teu elemento").name);

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.