Focus no campo

Pessoal,

O meu botao abaixo, verifica a validação do cpf (Tenho o metodo para fazer isso, faço isso no java esta ok), porem quando o cpf é invalido, gostaria de dar
o foco no txtvcpf, mas isso somente quando o cpf é invalido.

segue abaixo meu codigo



<p:inputMask id="txtvcpf" value="#{cadguiaMbean.vcpf}" mask="999.999.999-99" style="width: 95px;margin-right: 40px" >
                        </p:inputMask>


                        <p:commandButton id="verificaruserautogestao" value="Validar" update=":formprincipal:txtcpfinvalido" actionListener="#{cadguiaMbean.validacodigogestao}" style="height: 25px; font-size: 10px"/>                                                     
                        <h:outputText id="txtcpfinvalido" value="#{cadguiaMbean.cpfinvalido}"  styleClass="fontenome"/>  

da pra fazer pelo managedbean, após a validação
através do RequestContext.getCurrentInstance().execute(“focus(idComponent)”)

cria um javascript que faça um focus em um determinado componente

como vc está usando o primefaces vc pode mandar o comando através do primefaces context ou ainda usar um comando no oncomplete.

seria mais ou menos assim:

oncomplete="$('#id do campo').focus();"

RequestContext.getCurrentInstance().execute(“focus(txtvcpf)”);

assim nao funcionou.

Mas usando o autocomplete, irá dar o foco , todas as vezes que clicar no botao certo ?

Gostaria de dar o foco, apenas quando o cpf tiver ERRADO.

Tem como chamar no oncomplete, um javascript ?

[quote=evandro_araujo]RequestContext.getCurrentInstance().execute(“focus(txtvcpf)”);

assim nao funcionou.

Mas usando o autocomplete, irá dar o foco , todas as vezes que clicar no botao certo ?

Gostaria de dar o foco, apenas quando o cpf tiver ERRADO. [/quote]

eu uso assim e funciona perfeitamente.
Você criou a função javascript no seu xhtml? passou o id corretamente?

RequestContext.getCurrentInstance().execute(“focus(txtvcpf)”);

“focus” seria minha funcao no javascript ??

[quote=evandro_araujo]RequestContext.getCurrentInstance().execute(“focus(txtvcpf)”);

“focus” seria minha funcao no javascript ??[/quote]

sim, mas poderia ser outro a seu gosto.
exemplo:

function focus(id) { var obj = document.getElementById(id); if(obj!=null) { document.getElementById(id).focus(); } }

fiz assim , mas nao deu certo :

Javascript
function focusnocpf()
{
        alert("fdasfds "+document.getElementById('formprincipal:txtcpfinvalido').value);
}
****************************
Bean

        if (validarcpf.equals(false)) {
            setCpfinvalido("CPF Inválido, favor verificar");
            RequestContext.getCurrentInstance().execute("focusnocpf(txtvcpf)");

View 
                        <p:inputMask id="txtvcpf" value="#{cadguiaMbean.vcpf}" mask="999.999.999-99" style="width: 95px;margin-right: 40px" >
                        </p:inputMask>

você não fez como eu falei, vc tem que passar o id do componente por parâmetro
lá no managedBean.
Tenta fazer exatamente como eu mostrei.