Ir para conteúdo

POWERED BY:

Arquivado

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

Danilo.

getElementById Vs document.all... ou window.document.

Recommended Posts

eu tenho 4 campo com o mesmo nome, isso me gere um array no resultado, são varios itens, entao pra facilitar peguei só dois para exemplo:

 

No IE a exemplo abaixo funciona nomal

 

for (x=0;x<4;x++){

document.all.ListaOpcoes[x].innerHTML='';

window.document.frmposicao.opcao[x].value='';

}

 

 

no FF pede para usar getElementById, seria algo assim:

 

for (x=0;x<4;x++){

document.getElementById('ListaOpcoes').value;

document.getElementById('opcao').value='';

}

 

 

porem eu preciso de algo parecido com isso para atender 100%

 

for (x=0;x<4;x++){

document.getElementById('ListaOpcoes')[x].value;

document.getElementById('opcao')[x].value='';

}

 

mais assim não funciona...

 

 

 

no form tá assim, por exemplo.

<input type="text" name="opcao" id="opcao" value="">

<input type="text" name="opcao" id="opcao" value="">

<input type="text" name="opcao" id="opcao" value="">

<input type="text" name="opcao" id="opcao" value="">

 

 

eu sei q se mudar os id op1, op2, etc eu resolvo, mas tem mais outros codigos amarrados e prefiro ver se acho pro ff uma solução apenas alterando o javascript.

 

 

Alguem sabe como?

grato pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é por que você não pode repetir IDs:

<input type="text" name="opcao" id="opcao" value="">
<input type="text" name="opcao" id="opcao" value="">
<input type="text" name="opcao" id="opcao" value="">
<input type="text" name="opcao" id="opcao" value="">
Id = indentidade

 

faça assim:

<fieldset  id="opcao">
<input type="text" name="opcao"  value="">
<input type="text" name="opcao" value="">
<input type="text" name="opcao" value="">
<input type="text" name="opcao" value="">
</fieldset>

Inps = document.getElementById('ListaOpcoes').getElementsByTagName("input");
for (x=0;x<Inps.length;x++){
Inps[x].value;
Inps[x].value='';
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado pela ajuda, eu resolvi essa parte renomeando os id, opcao1, opcao2, etc

 

 

 

agora não sei se tem solucao para o FF, no IE está ok, no FF se eu uso o mouse para mudar o conteudo do select, ok a funcao colocada no OnChange muda na hora, mas se eu mudar com o teclado o valor só é assumido depois que eu saido do select. Ou seja no ie basta eu colocar no select e ir mudando com a seta do teclado que o valor vai aparecendo no campo abaixo, mas no FF isso não ocorre ele só mostra do valor depois que saio do select e nao vai mudando os valores na hora como no IE

 

<select name="cod" id="cod" onChange="pegavalor('1');">

 

alguma ideia para solucionar isso no FF

 

grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

function HTMLObjSet( eln ){

var rr = false;

if( document.all ){

if( document.all[eln] ){

rr = document.all[eln];

}

}else{

if( document[eln] ){

rr = document[eln];

}else{

if( document.getElementById(eln) ){

rr = document.getElementById(eln );

}

}

}

return rr;

}

 

/**uso

objeto = HTMLObjSet( 'Nome_Ou_ID' )

 

// para teste

alert(objeto );

*/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele não pode utilizar apenas o document.getElementById()? Tanto o IE qto o FF entendem...

 

ABRAX!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele não pode utilizar apenas o document.getElementById()? Tanto o IE qto o FF entendem...

as versões atualizadas dos browsers mais populares reconhecem

 

mas quem garante que o usuário tem tudo atualizado ?

 

por segurança faça consistências em seus scripts

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... com a realidade que estamos, onde a web chegou e a facilidade de acesso à um PC é impossível um usuário ter um IE anterior ao 5 (na versão 5 ele entende getElementById também).

 

Concordo SIM que em algumas coisas (e não poucas) temos que pensar nos usuários mais atrasados, mas mesmo assim... criar scripts enooooormes alternativos e com muitas linhas de código sendo que com apenas 1 ou 2 podemos resolver?

Se o cara não é capaz de ter um IE versão mais atual que o 5.0 ele também não pode reclamar que um site ou outro não funcione perfeitamente.

 

Pra mim temos é que conscientizar o usuário para se atualizar! Reeducação... sei lá! Informação é o que não falta hoje.

 

Mas... sei lá, é a minha opinião! E ao meu ver, é uma discussão sem fim. :P

 

ABRAX!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Concordo SIM que em algumas coisas (e não poucas) temos que pensar nos usuários mais atrasados, mas mesmo assim... criar scripts enooooormes alternativos e com muitas linhas de código sendo que com apenas 1 ou 2 podemos resolver?

Se o cara não é capaz de ter um IE versão mais atual que o 5.0 ele também não pode reclamar que um site ou outro não funcione perfeitamente.

 

Pra mim temos é que conscientizar o usuário para se atualizar! Reeducação... sei lá! Informação é o que não falta hoje.

nao vou discutir isso com você

 

apenas passei uma dica baseada em 11 anos de experiência.

 

mais uma dica pra você e também para todos.

não baseiem-se em achismo.

 

usuário leigo é sempre leigo. muitos usuários não mantém os sfotwares atualizados.

além disso, o que é estabelecido como padrao hoje será seguramente aplicável daqui a 4 anos.

Porém, daqui a 4 anos inventarão outros padroes.

 

sempre foi assim por motivos óbvios

- capitalismo

- renovação

 

 

fiquem atentos não somente à conceitos técnicos oriundos de documentações e modismos, mas ao movimento mercadológico em geral.

 

apesar de tudo isso, cada um é livre pra fazer como bem entender

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.