RESOLVIDO - f:ajax no internet explorer

Ola amigos, gostaria de saber se alguém já passou por isso: estou usando f:ajax (xmlns:f=“http://java.sun.com/jsf/core”) e funciona normalmente no firefox e no chrome mas no internet explorer (testei na versão 8 ) não funciona. Como o código era grande, fiz um novo só para passar a ideia do que quero fazer e não ficar muito complicado. A ideia é essa:

[code]<h:panelGrid id=“pncategoria” columns=“2”>
<h:outputLabel value=“Tipo:” />
<h:selectOneRadio layout=“lineDirection” requiredMessage=“Informe se você é pessoa fisica ou juridica” required=“true” immediate=“true” id=“tipopessoa” value="#{pessoaBean.tipoPessoa}" >
<f:selectItem itemLabel=“Fisica” itemValue=“1” />
<f:selectItem itemLabel=“Juridica” itemValue=“2” />
<f:ajax immediate=“true” render=“formulario:pngeral” />
</h:selectOneRadio>
</h:panelGrid>

<h:panelGroup id=“pngeral”>
<h:panelGroup id=“pnfisica”>
<h:panelGrid columns=“2” rendered="#{(pessoaBean.tipoPessoa == 1)}">
<h:outputLabel value=“CPF:” />
<h:inputText requiredMessage=“O cpf deve ser informado.” required=“true” value="#{pessoaBean.pessoa.cpf}" rendered="#{(pessoaBean.tipoPessoa == 1)}" />
</h:panelGrid>
</h:panelGroup>

<h:panelGroup id="pnjuridica"> 	             
	<h:panelGrid columns="2" rendered="#{(pessoaBean.tipoInscricao == 2)}">   	      														    
		<h:outputLabel value="CNPJ:" /> 
		<h:inputText requiredMessage="O CNPJ deve ser informado." required="true" value="#{pessoaBean.pessoa.cnpj}" rendered="#{(pessoaBean.tipoInscricao == 2)}" />			             												             				             																		             
	</h:panelGrid>	  
</h:panelGroup>

</h:panelGroup>[/code]

Basicamente, tem a escolha em um radio se a pessoa é fisica ou juridica, habilitando um painel com cpf se for tipo = 1 (fisica) ou o painel com cnpj, se o tipo for =2 (CNPJ. Como falei, criei este exemplo para ficar mais simples de explicar o problema. No firefox e no Chrome ele habilita e desabilita normalmente, no Internet explorer é como se nem existisse…

Qual o erro que apresenta no ie ?

Qual versão do ie ?

O problema é esse…nada de erro, somente não funciona no IE… eu fico clicando no radio e é como se não tivesse código associado (como se não não tivese renderizando)…já no firefox e no chrome funciona perfeitamente. O problema foi detectado na versão 8 do IE…

descobri o erro e para quem um dia passar pelo mesmo problema aí está a solução: problema está em utilizar encoding ISO-8859-1, usando UTF-8 tudo funciona normal.

cuidado com a utilização do encoding ISO-8859-1 como abaixo (trabalhando com ajax):

<?xml version="1.0" encoding="ISO-8859-1" ?>

Como falei, funciona perfeitamente no Chrome e no Firefox mas no Internet Explorer não…

Olá.
Tive um problema muito parecido.

Estava com um ajax chamando outra página por POST e recebendo dados JSON, e charset Windows-1252, funcionando normalmente. No entanto, ao incluir uma chamada que retornava acentos, o charset utf-8 do json retirava os acentos…
No Firefox e Chrome, tudo permaneceu funcionando, no entanto, no IE alguns BUGs apareceram.

O principal BUG é que o ajax só funcionava uma vez , e nos próximos cliques nada acontecia, como se função não estivesse mais lá.

Neste caso, nao pesquisei mais, e apenas impedi o retorno com acentos do JSON.

Mas você tem alguma idéia de ler os textos com acentos e nao utilizar o charset utf-8?

rapaz…

a verdade é que não foi “Resolvido totalmente”…

descobri que o f:ajax funciona no Internet explorer com UTF-8…mas ferra a acentuação

com ISO-8859-1 a acentuação fica boa mas o f:ajax não funciona no IE

A grande pergunta é:

Alguém consegue usar ISO-8859-1 e fazer f:ajax funcionar no IE?

Tive o problema relatado acima, com o IE. A função tinha sido criada e funcionava apenas uma única vez.
Resolvi o problema alterando a forma como o IE faz a atualização das páginas. Lá no IE, vá até opções de internet (internet opitions), e depois em configuraçoes (settings) do histórico da internet (Browsing History) e definina a primeira escolha , ou seja, sempre que eu visitar a webpage (Every time I visit the webpage).

Não tenho certeza, mas aparentemente o IE utiliza um cache interno e quanto a configuração em em automático, ele não atualiza a página com o ajax.

Estou tendo alguns problemas também com a formataçao o encoding windows-1252, pois os acentos são excluidos nas chamadas do ajax, que usa encoding UTF-8.
Alguem conseguiu resolver isto?

Olá, a solução que você deu resolve para seu acesso mas pense num sistema de inscrições ou que seja aberto a várias pessoas, como garantir que elas farão a mudança nas opções no IE?

estava perdendo um tempo com isso e fazendo vários tipos de teste. Enfim, cheguei numa solução que funcionou: fez o Internet explorer funcionar com o f:ajax e a acentuação ficou normal, aceitando caracteres de nosso idioma, como o ç, o ~, etc…

em resumo, este código não funciona (lembrando que no chrome e firefox funciona normalmente):

<?xml version="1.0" encoding="ISO-8859-1" ?>

Já este funciona:

<?xml version="1.0" encoding="ISO-8859-15" ?>

Ou seja, se tiver com ISO-8859-1 o f:ajax não funciona, com UTF-8 tive problemas com acentuação, e com o ISO-8859-15 funcionou normal (tanto o f:ajax no IE, quanto a acentuação fica normal). Mudei isto apenas no arquivo .XHTML que tinha o f:ajax, nos demais continuei usando ISO-8859-1.

Acho que ficou resolvido :slight_smile: