Ir para conteúdo

POWERED BY:

Arquivado

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

LF_HERNANDES

[Resolvido] document.getElementById - não funciona no Firefox e C

Recommended Posts

Bom dia pessoal!

Desenolvi um sistema onde o usuário insere o cep dele e o mesmo me devole opções de frete. No IE em todas as versões funciona porem no Firefox e Chrome não.

 

Como funciona:

O cliente ao logar apresenta as opções de endereço que ele tem cadastrado no sistema.

 

<input type="radio" name="radio" id="OPCAO" value="S" onClick="muda_opcao(this.value);"/><b>Endereço Secundário</b></label>

 

Ao selecionar a opção o sistema executa o script

 

<script type="text/javascript">
function muda_opcao(OPCAO) {	
$.post("frete_opcao.php", { OPCAO:$('#OPCAO').val()},
function(Data_opcao){
document.getElementById("resultado_opcao").innerHTML = Data_opcao;})  	
} 
</script>

 

o resultado da página frete_opcao.php poderá ter n tipos de frete.

 

Exemplo:

 

echo "<label style=\"color:#333;\">
            <input type=\"radio\" name=\"FRETE\" id=\"radio_11\" value=\"0 - ".$tipo."/AC\" />
             <b>A Combinar</b></label>";

echo "<label style=\"color:#333;\">
<input type=\"radio\" name=\"FRETE\" id=\"radio_".$i."\" value=\"R$ ".number_format($VALOR_TRANS, 2, ',', '.')." - ".$tipo."/TR\" /></input>
<b>Transportadora:  R$ ".number_format($VALOR_TRANS, 2, ',', '.')."</b></label>";

 

que irá me apresentar em

 

<form id="form_entrega" name="form_entrega" method="post" action="?btn=gravar">
<tr><td align="left"><div style="margin-left:50px;" id="resultado_opcao"></div></td></tr>
</form>

 

 

O sistema apresenta normalmente os valores acima descritos tanto no IE, Firefox e Crome... porém quando clico em avançar para que capture o valor do mesmo selecionado, me acusada que não tem nenhum valor.

Porem no IE ele encontra um valor.

 

Algúem sabe o que pode ser?

 

Desde já agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você criou um conflito de variaveis. Deixe assim:

 

        function muda_opcao() {    
       $.post("frete_opcao.php", { OPCAO:$('#OPCAO').val()},
       function(Data_opcao){
       document.getElementById("resultado_opcao").innerHTML = Data_opcao;})    
       } 

 

sem nenhum argumento ali.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia William, obrigado por responder.

 

O problema é que quando seleciono algum das opções listadas o valor do radio button não é interpretado para o firefox resultando no valor da variavel "" porem no ie a variavel vem preenchido o valor do raio button.

 

Você sabe como posso resolver isso?

 

Desde já obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depende de algumas coisas.. você tem mais radio buttons ?

você chama essa função em mais algum lugar ? ou só nesse radio ?

 

 

Note que você está usando jQuery. Então para melhorar o código, deveria não misturar coisas de js puro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Willian pode ter vários radio buttons no resultado pois os mesmo são criados dinamicamente e apresentado na div "resultado_opcao"

A função só chamo no radio para ele lista qual endereço o usuário deseja.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, então temos um erro ai.

Pois você não pode repetir o atributo ID. Este deve ser um identificador único no documento.

 

Deixe os teus radios assim:

<input type="radio" name="radio" value="S" /><b>Endereço Secundário</b></label>

 

e então a função fica:

 

$(document).ready(function(){
   $("input[type='radio']").click(function(){
       $.post("frete_opcao.php", 
           { OPCAO: $( this ).val() },

           function( Data_opcao ){
               $("#resultado_opcao").html( Data_opcao );
           }
       )};
   });
});

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.