Código para mostrar div não funciona no firefox, só no chrome

3 respostas
S

Tenho uma tag struts 2 que monta uma combo que chama uma função javascript:

<s:radio label="" name="porte" list="#{'1':'Não','2':'Sim'}" value="1" onclick="mostrardiv(this.value)"/>
Essa é a função:
<script type="text/javascript">
	function mostrardiv(porte){		
		for(i=0;i<document.all.porte.length;i++){
		    if(document.all.porte[1].checked){
		        document.getElementById('divArma').style.display = 'inline';
			}else{
				document.getElementById('divArma').style.display = 'none';
			}			
		}
	 }
	</script>

Funciona no chrome mas não funciona no firefox, alguém sabe dizer onde estou errando?

3 Respostas

EduFranzoni

tente usar display: block em vez de inline!

abs

S

Não funcionou

W

Ola,

User document.all nao eh uma boa ideia!!!
Porque nao eh uma maneira padrao de accessar DOM nodes, se nao me engano foi introduzido pela merda do IE4 eu acho.

Acho melhor vc usar document.getElementsByTagName(’*’) ou filtrar por radio buttons por exemplo, porque nao faz sentido pegar a lista de todos os elementos da pagina se vc nao vai usa-los.

Mas eu nao entendi a sua funcao:

function mostrardiv(porte){
        for(i=0;i<document.all.porte.length;i++){  
            if(document.all.porte[1].checked){  
                document.getElementById('divArma').style.display = 'inline';  
            }else{  
                document.getElementById('divArma').style.display = 'none';  
            }             
        }  
     }

Vc passa the radion button value para mostrardiv mas vc nunca usa “porte” na funcao ?!?

Porque vc faz esse loop?? Vc tem varios radio buttons ??? Porque vc faz esse loop e show e hide o mesmo div varias vezes ???

O que vc esta querendo fazer especificamente? =)

//Daniel

Criado 30 de junho de 2012
Ultima resposta 2 de jul. de 2012
Respostas 3
Participantes 3