Setar foco no campo xhtml

5 respostas
R

Boa tarde galera, tudo certo? Bem, na minha aplicação tenho dois input. Um deles sendo para o código e outro para uma String. Também, tenho um commandButton que abre um Dialog. Como funciona: No meu cadastro de reservas, a pessoa pode digitar o código do usuário e dar um Tab, daí aparece o nome do usuário… caso contrário, ela abe o dialog e seleciona o usuário por lá.
Fiz o seguinte: Se é digitado um código que não existe, ele dá a mensagem que o código não existe e limpa o campo que é digitado. Porém, eu queria que também fosse setado o focus nesse campo para que o usuário pudesse voltar nele sem precisar clicar.
Abaixo o xhtml:

<div>
                                        <td align="right">Usuário:</td>
                                        <h:panelGrid columns="3">
                                            <p:inputMask onkeydown="chamaDialog(event, 'codigo_usuario');" id="codigo_usuario" size="6" mask="9?9999" required="true" requiredMessage="O campo usuário deve ser informado." placeHolder="" value="#{reservasJsfBean.codigoUsuarioBibParaRegistro}" >
                                                <f:ajax render="codigo_usuarioMostra grow4 codigo_usuario" event="change" listener="#{reservasJsfBean.atualizarUsuarioPorCodigo(event)}"/>
                                            </p:inputMask>
                                            <p:inputText id="codigo_usuarioMostra" size="50" disabled="true" required="true" requiredMessage="O campo usuário deve ser informado." value="#{reservasJsfBean.crudObj.resleitor.usuNome}" style="opacity: 2"/>
                                            <p:commandButton id="abreDialogUsu" icon="ui-icon-search" onclick="usuarioDialog.show()"/>
                                        </h:panelGrid><br/>
                                    </div>

E no meu bean:

public void atualizarUsuarioPorCodigo(AjaxBehaviorEvent event) {
        fillUsuarioPorCodigo(this.codigoUsuarioBibParaRegistro);
    }

    private void fillUsuarioPorCodigo(String codigo) {
        if (codigo != null && !codigo.trim().equals("")) {
            Usuariobib usuarioBuscado = u.findUsuarioByCodigo(codigo);
            if (usuarioBuscado != null) {
                if (exe.usuarioInadimplente(usuarioBuscado.getUsuCodigo())) {
                    warn("O usuário está inadimplente com a biblioteca. "
                            + "Para reservar exemplares é preciso pagar"
                            + " as multas.");
                    codigoUsuarioBibParaRegistro = "";
                    crudObj.setResleitor(null);
                } else {
                    crudObj.setResleitor(usuarioBuscado);
                }
            } else {
                warn("O usuário com o código " + codigo + " não existe.");
                codigoUsuarioBibParaRegistro = "";
                crudObj.setResleitor(null);
            }
        } else {
            this.usuariosList = getCrudService().findAll(Usuariobib.class, "usuNome");
            crudObj.setResleitor(null);
        }
    }

Não sei se eu poderia fazer com que fosse setado o foco diretamente no xhtml ou se posso fazer isso no meu bean… Se alguém puder ajudar, agradeço mto…

5 Respostas

R

Alguém poderia dar uma mão ae?? Vlw…

RafaelCassau

cara não sei se entendi muito bem o que está falando, mas ja tentou usar javascript?

R

Boa tarde cara. Bem, não tentei…Mas pra resumir, queria algo mais ou menos assim se der erro o foco permanece( vem a mensagem de erro que fiz no bean), senão o foco vai pro próximo campo. Conseguiu entender?? Parecido com isso http://www.guj.com.br/java/217870-jsf-e-focus---o-velho-problemaresolvido
Poderia ajudar?? Vlw cara…

R

Alguém mais também poderia ajudar?? Vlw ae…

R

Alguém mais poderia ajudar?

Criado 26 de abril de 2013
Ultima resposta 27 de abr. de 2013
Respostas 5
Participantes 2