Atualizar campos no onchange do selectOneRadio

2 respostas
C
Pessoal tenho o código abaixo
<h:panelGrid id="pgDadosPrincipais" columns="2">
                <h:outputText value="Tipo:" />
                <h:selectOneRadio id="tipoCliente" 
                                  value="#{mBClientes.clienteInserir.pfpj}"
                                  style="font-family: Tahoma;font-size: 12px;">
                    <f:selectItem itemLabel="Pessoa Física" itemValue="1" />
                    <f:selectItem itemLabel="Pessoa Jurídica" itemValue="2" />
                </h:selectOneRadio>
                
                <h:outputText value="#{mBClientes.clienteInserir.pfpj.intValue() == 1 ? 'Cpf' : 'Cnpj'}" />
                <p:inputText id="cpfcnpj" 
                             value="#{mBClientes.clienteInserir.cpfcnpj}"
                             style="font-family: Tahoma;font-size: 12px;"/> 
            </h:panelGrid>
queria que quando o usuario alterasse o tipo, trocasse o label do segundo outputText, e vou fazer a mesma lógica pra mascara do campo cpfcnpj, eu consegui colocando a seguinte linha de código no componente selectOneRadio
onchange="submit()"
mas com isso ele faz um submit no form todo, nao quero que seja feito um submit, queria apenas fazer um update, existe alguma coisa tipo
onchange="pgDadosPrincipais.update()"
já tentei várias coisas +- como essas, mas nao consegui até agora

Desde já grato t+

2 Respostas

A

O primefaces 3 já está dando suporte a essa funcionalidade, está em estado M3.1 eu acho, ainda não foi oficialmente lançado, mas a ferramenta de selecOneMenu já foi concluída. Vale a pena baixá-lo já.

Caso essa primeira solução não te satisfaça, utilize o ajax event do próprio primefaces, ele faz isso para você dando update em componentes por ação tomada.

C
nao consegui fazer usando p:ajax mas usando f:ajax consegui, ficou assim
<h:panelGrid id="pgDadosPrincipais" columns="2">
                <h:outputText value="Tipo:" />
                <h:selectOneRadio id="tipoCliente" 
                                  value="#{mBClientes.clienteInserir.pfpj}"
                                  style="font-family: Tahoma;font-size: 12px;">
                    <f:selectItem itemLabel="Pessoa Física" itemValue="1" />
                    <f:selectItem itemLabel="Pessoa Jurídica" itemValue="2" />
                    <f:ajax event="change" render="pgDadosPrincipais"/>
                </h:selectOneRadio>
                
                <h:outputText id="cpfcnpj1" value="#{mBClientes.clienteInserir.pfpj.intValue() == 1 ? 'Cpf' : 'Cnpj'}" />
                <p:inputMask id="cpfcnpj2" 
                             mask="#{mBClientes.clienteInserir.pfpj.intValue() == 1 ? '[CPF removido]' : '99.999.999/9999-99'}"
                             value="#{mBClientes.clienteInserir.cpfcnpj}"
                             style="font-family: Tahoma;font-size: 12px;"/> 
            </h:panelGrid>
Criado 29 de julho de 2011
Ultima resposta 29 de jul. de 2011
Respostas 2
Participantes 2