Ir para conteúdo

POWERED BY:

Arquivado

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

williamnohath

Dhtml funciona no firefox, mas n funciona no IE

Recommended Posts

dae galera, seguinte...

 

tenho o firefox 1.5, e o IE 6

 

tenho o seguinte codigo q cria linhas dinamicamente em uma tabela, gerando um botao, junto com a linha, de remover a mesma.

 

segue o codigo do meu js que cria a linha

 

function add2(id, nome, codigo, qtd){	394	395				 if(id.length == 0){	396								 alert('Equipamento inválido');	397				 }	398				 else{	399						 if(qtd > 0){	400								 // adicionando equipamento na janela parent	401	402								 var tab = opener.document.getElementById('tab_equip');	403								 var frm = opener.document.getElementById('f1');	404								 var tr = opener.document.createElement('TR');	405								 var td1 = opener.document.createElement('TD');	406								 var td2 = opener.document.createElement('TD');	407								 var td3 = opener.document.createElement('TD');	408								 var td4 = opener.document.createElement('TD');	409	410								 var ipt1 = opener.document.createElement('INPUT');	411								 var ipt2 = opener.document.createElement('INPUT');	412	413								 td1.innerHTML = "<small>" +codigo+ "</small>";	414								 td2.innerHTML = "<small>" +nome+ "</small>";	415								 td3.innerHTML = "<small>" +qtd+ "</small>";	416	417								 var numE = opener.document.getElementById('num');	418								 var num = numE.getAttribute('value');	419	420								 num++;	421								 numE.setAttribute('value', num);	422	423								 /*var numi = document.getElementById('theValue');	424								 var num = (document.getElementById('theValue').value -1)+ 2;	425								 numi.value = num;*/	426	427								 //td4.innerHTML = "numero="+num;	428								 tr.setAttribute('id',num);	430								 ipt1.setAttribute('type', 'hidden');	431								 ipt1.setAttribute('name', 'id['+id+']');	432								 ipt1.setAttribute('value', qtd);	433								 ipt1.setAttribute('id', 'h'+num );	434	435								 ipt2.setAttribute('type' , 'button');	436								 ipt2.setAttribute('value','remover');	437								 ipt2.setAttribute('name' , 'nome'+num);	438								 ipt2.setAttribute('onclick','remove('+num+');');	439								 ipt2.setAttribute('id','b'+num);	440	441								 td4.appendChild(ipt2);	442	443								 frm.appendChild(ipt1);	444	445								 td1.className = "table";	446								 td2.className = "table";	447								 td3.className = "table";	448						 //	  td4.className = "table";	449	450								 tr.appendChild(td1);	451								 tr.appendChild(td2);	452								 tr.appendChild(td3);	453								 tr.appendChild(td4);	454	455								 tab.appendChild(tr);	456	457						 }	458	459				 }	460		 }
aqui meu codigo que remove a linha

 

function remove(divNum){	 15	 16				 var tab = document.getElementById('tab_equip');	 17				 var linha = document.getElementById(divNum);	 18				 var id_hidden = document.getElementById('h'+divNum);	 19				 var form = document.getElementById('f1');	 20	 21				 form.removeChild(id_hidden);	 22				 tab.removeChild(linha);	 23		 }
no FIREFOX funciona normal, no IE eu aperto o botao e nada acontece

alguem tem ideia ???

 

valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

poxa galera, entendi q o problema ta na criacao do tbody, mas ainda n consegui fazer funcionar, alguem pode me dar um exemplo de como fazer ??valewps: eu uso uma tabela ja existente, eu apenas adiciono novas linhas <tr>

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi o q eu fiz, mas ainda n resolveu

 

<tbody id=tab_equip>		<tr bgcolor=e0e0e0>			<td><small><b>Código</b></small></td>			<td><small><b>Nome</b></small></td>			<td><small><b>Quantidade</b></small></td>		</tr></tbody>

Compartilhar este post


Link para o post
Compartilhar em outros sites

dae cara, beleza.

bem, vou responder tua pm aqui pois pode ser útil para mais alguém no futuro.

 

abaixo segue um exemplo de uma função que cria um determinado formulário:

 

/*function montaAgrupador(){	remover();	var formulario = document.getElementById("formulario");		var tabela = document.createElement("table");	var tbody = document.createElement("tbody");		var tr1 = document.createElement("tr");	var td1 = document.createElement("td");	td1.style.verticalAlign = "top";	var td2 = document.createElement("td");	var textotd1 = document.createTextNode("Descrição");	var campotexto1 = document.createElement("textarea");	campotexto1.id = "campotexto1";	td1.appendChild(textotd1);	td2.appendChild(campotexto1);		var tr2 = document.createElement("tr");	var td3 = document.createElement("td");	td3.colspan = 2;	var botao1 = document.createElement("input");	botao1.type = "button";	botao1.value = "Cadastrar";	botao1.id = "botao1x";	var botao = document.getElementById("botao1x");	if(document.all){		botao.attachEvent("onclick", oi);	}else{		botao.addEventListener("click", oi, false);	}	td3.appendChild(botao1);		tr1.appendChild(td1);	tr1.appendChild(td2);	tr2.appendChild(td3);	tbody.appendChild(tr1);	tbody.appendChild(tr2);	tabela.appendChild(tbody);	formulario.appendChild(tabela);}

vamo à explicação. como eu disse essa função cria um grupo de componentes ui numa tabela, que vai preencher no banco a minha tabela AGRUPADOR.

eu tenho um div onde será montado cada formulário, (<div id="formulario">), eu uso a função remover para limpar o div formulario, e começo a montar a tabela dinamicamente.

você quase pegou o fio da meada, deve ter deixado uma ou outra coisa faltando, esse exemplo funcionou nos navegadores que eu testei (ie 6.0 sp 2, ff versão 1.5 e a última antes dessa), as outras coisas como os eventos anexados dinamicamente aos botões não me lembro se tá certo isso :P pois eu acabei abandonando isso e fazendo essa tela de outro jeito mais simples....

mas o teu problema da tabela está resolvido, qualquer coisa poste ai que eu tento dar uma mão.

flws.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então, seguindo o exemplo que eu passei, experimente tirar as linhas que criam a tabela e o tbody, e apenas vá anexando teus tr no teu tbody, tente fazer isso ver se funciona.se não funcionar e você tiver que fazer desse jeito mesmo aconselho a mudar a forma como você está trabalhando. desde que eu comecei a adotar a metodologia tableless, problemas desse tipo são facilmente resolvido, apenas uma sugestão.flws.

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.