JSF selectOneRadio

7 respostas
R

Olá pessoal,
Bom dia a todos. :smiley:

Eu estou precisando criar uma página no JSF
que quando eu clico em um radio button ele
automaticamente habilita uma textarea e quando
eu voltar para o outro radio button ele desabilite
o textarea.

O mais perto que eu consegui chegar disso foi:

<h:form>
                <h:messages />
                <h:selectOneRadio binding="#{TheActionBean.chkFlag}" value="#{TheActionBean.flagAnormal}" onblur="submit();" >
                    <f:selectItem  itemValue="#{TheActionBean.flagNormal}" itemLabel="Normal"/>
                    <f:selectItem  itemValue="#{TheActionBean.flagAnormal}" itemLabel="Anormal" />
                </h:selectOneRadio>
                <h:inputTextarea rows="3" cols="20" binding="#{TheActionBean.chkFlag}" disabled="#{TheActionBean.flagAnormal}" /><br>
                <br>
                <br>
                <h:commandButton action="refresh" value="go!" />
            </h:form>

Meu ManagedBean:

public class TheActionBean {

    private String name;
    private boolean flagNormal = false;
    private boolean flagAnormal = true;
    private HtmlSelectOneRadio chkFlag;
    private HTMLTextAreaElement textArea;
    
    //get's e Set's

    public void trocaValor(ValueChangeEvent event){
        if(event.getNewValue().toString().equals("false")){
            flagAnormal = false;
             flagNormal = true;  
        }
        else{
            flagNormal = false;
             flagAnormal = true;     
        }
        FacesContext.getCurrentInstance().renderResponse();

    }
}

Mas até agora não consegui fazer o que eu estou querendo, :frowning:
Será que alguém poderia me dar uma ajuda?

[]'s.

7 Respostas

R

Olá pessoal,
alguém já fez algo parecido?
Será que alguém poderia me dar uma ajuda? :smiley:

[]'s.

A

vc pode deixar criado apenas uma flag boolean… e ao escolher no radio
enviar via ajax… e no bean comparar… se for anormal é false, se for normal é true…
e usar o rerender para renderizar o textarea e usar a flag como vc esta usando no atributo disabled

R

Jóia alves.Felipe?

Eu nunca mexi com o AJAX,
eu queria ver se eu consigo fazer
isso sem usar o ajax, pois acho que
para usar o ajax vou ter que usar a
biblioteca do richfaces, não é isso Felipe?

Por favor me corrijam se eu falei
alguma bobeira aqui. :smiley:

[]'s.

A

blz cara…
mas usar novos componentes seria um problema?
mas blz… vc pode fazer como esta fazendo… ao inves de usar o ajax deixa como esta…
qdo faz assim da um refresh na tela neh?
coloca a flag num output só para ver se ele retorna com o valor certo…
se nao… vc vai ter q colocar na sessão ou usar um keepAlive…do richfaces ou savestate do tomahawk…

G

Olha, se for possível utilize o RichFaces como disse o colega, é muito útil para resolver esse problema e muitos outros.

Mas se não der, é possível fazer com Javascript.

R

Jóia Alves?
Você teria um exemplo algo parecido
que utilize o richfaces?

[]'s.

R

Jóia Gomes?
Você teria algum exemplo de javascript
que faça algo parecido? Só para eu ter uma idéia mais ou menos?

[]'s.

Criado 18 de fevereiro de 2010
Ultima resposta 18 de fev. de 2010
Respostas 7
Participantes 3