Bom dia
Galera, devido a uma lógica exigida pela minha página e pelo gestor, preciso que quando o usuário clicar em um "radio" na tela, seja exibida uma mensagem javascript, e ao mesmo tempo devo renderizar novamente um painel ajax com alguns campos dentro dele.
Acontece que este javascript irá controlar a visualização deste painel, se o usuário clicar em SIM eu mostro o painel ,caso contrário eu escondo ele.
Um desenvolvedor fez o javascript do qual controla esta visualização do painel através de um hidden,setando ele para TRUE ou FALSE, logo a propriedade visible do painel esta ligada ao mesmo atributo do hidden.
Isto funciona se caso eu dar submit() na tela inteira, pois o painel será renderizado novamente e sua visualização se atualizará conforme o valor que estiver setado no hidden.
Este funcionamento ficou meio penoso, ja que somente funciona se for atualizado a página inteira, eu queria apenas atualizar somente o painel, e por isto pensei no AJAX.
O que estou tendo é o seguinte: Não funciona ao mesmo tempo o onclick do selectOneRadio e o onclick do a4j:support ligado ligado a ele.
O código seria mais ou menos este:
<h:panelGrid>
<h:selectOneRadio id="radio" onclick="if (confirm('tem certeza?')) alert('sim'); else alert('não');" >
<f:selectItem itemLabel="Teste1" itemValue="1" />
<f:selectItem itemLabel="Teste2" itemValue="2" />
</h:selectOneRadio>
<a4j:support event="onclick" reRender="painel" />
</h:panelGrid>
Percebam que no caso acima, eu uso 2 onclicks, e isto não funciona né,hehe
Obs: conforme eu expliquei acima ,no onclick do selectOneRadio há uma função que seta o valor do hidden, mas não coloquei aqui pq não vem ao caso e não estou no serviço para poder pega-la.
Alguém tem algumaidéia de como eu posso exibir uma mensagem javascript e atualizar um painel ?
Vou colocar algo que simule minha situação aqui, se alguém puder testar eu agradeceria muito. Qualquer idéia vai me ajudar bastante,as que tive até agora não foram legais,rsrs<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<!-- RichFaces tag library declaration -->
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<html>
<head>
<title>Página de Teste</title>
</head>
<body>
<f:view>
<rich:panel>
<f:facet name="header">
<h:outputText value="Ao clicar no radio, exibir mensagem javascript e renderizar novamente somente o painel"/>
</f:facet>
<h:panelGrid>
<h:selectOneRadio id="radio" onclick="if (confirm('tem certeza?')) alert('sim'); else alert('não');" >
<f:selectItem itemLabel="Teste1" itemValue="1" />
<f:selectItem itemLabel="Teste2" itemValue="2" />
</h:selectOneRadio>
<a4j:support event="onclick" reRender="painel" />
</h:panelGrid>
<rich:panel id="painel">
<a4j:form>
<h:panelGrid>
<h:outputText id="atualizar" value="Name:" />
<h:inputText id="atualizarSeForSim2" value="" />
</h:panelGrid>
</a4j:form>
</rich:panel>
</rich:panel>
</f:view>
</body>
</html>
Abraços