Exibir/mostrar componente usando ajax jsf

1 resposta
G

Olá amigos,

Gostaria de saber se usando JSF se eu consigo esconder/exibir um <h:inputText/>.

Verifiquei no:

Mas não tive exito.

eu tenho um formulário com o selectOneMenu e quando eu selecionar “outra” exibir o campo vazil, senão esconder o mesmo.
Segue abaixo meu código que não entra no método.

Agradeço mais uma vez pela coraboração de todos

veja meu código abaixo:

Página xhtml

&lt;h:outputText value="Universidade:" /&gt;  
                        &lt;h:selectOneMenu  id="combo"&gt;  
                            &lt;f:selectItem itemValue="" itemLabel="Selecione..." /&gt;  
                            &lt;f:selectItem itemValue="1" itemLabel="Opicao1" /&gt;  
                            &lt;f:selectItem itemValue="2" itemLabel="Opicao2" /&gt;  
                            &lt;f:selectItem itemValue="Outra" itemLabel="Outra" /&gt;
                            &lt;p:ajax event="change" valueChangeListener="#{pessoaBean.mostraCampoComplemento}" update="comp" /&gt;                                     
                        &lt;/h:selectOneMenu&gt;  
                    &lt;/h:panelGrid&gt; 
                    
             &lt;h:outputLabel value="Outra universidade:" id="comp" for="outra" rendered="#{pessoaBean.exibeComplemento}" /&gt;
			&lt;h:inputText id="outra" Label="Outra"    /&gt;

Página Bean

private boolean exibeComplemento = true;

// gerado os get e set

	public void mostraCampoComplemento(ValueChangeEvent event) {  
	    Long valor = (Long) event.getNewValue(); 
	    if(valor.equals("Outra")){
	    	this.setExibeComplemento(true);
	    }else{
	    	this.setExibeComplemento(false);
	    } 
	}

1 Resposta

H

Não dê update do componente direto, mas sim no containner dele. Um Panel ou Form por exemplo.

Eu explico melhor isso aqui: JSF Exemplos Simples com Ajax

Criado 26 de dezembro de 2011
Ultima resposta 26 de dez. de 2011
Respostas 1
Participantes 2