4
respostas

JAVA JSF - HELP

Pessoa, boa tarde! help…

Estou com um probleminha: tenho que ler um código de barras fazer a execução de um serviço e voltar o focus para o proximo campo… fiz o forme abaixo ele executa meu serviço e volta o focus para ele mesmo…como resolver…?

<h:form id=“entradaDados”>
<p:fieldset legend=“Entrada de Dados” style=“height:150px; width: 300px; margin-bottom:20px”>
<h:panelGrid columns=“2” cellpadding=“6” layout=“grid”>
<p:outputLabel value=“Etiqueta:” for=“etiqueta” />
<p:inputText id=“etiqueta” value="#{etiquetaBean.etiquetaInput}" size=“12"
onkeypress=“if (event.keyCode == 13) { onchange(); return false; }” onblur=“operacao.focus()” >

<p:ajax update=”@form :formEtiqueta etiqueta operacao"
listener="#{etiquetaBean.etiquetaWs}" process=“etiqueta” />
</p:inputText>
<p:outputLabel value=“Operação” for=“operacao” />
<p:inputText id=“operacao” value="" size=“12” >

                </p:inputText>
            </h:panelGrid>
        </p:fieldset>    

    </h:form>
4 respostas

Olá Jorge,

Estava olhando o seu código e pensei em fazer a seguinte alteração:

<p:inputText id=“etiqueta” value="#{etiquetaBean.etiquetaInput}" size=“12"
onkeypress=“if (event.keyCode == 13) { operacao.focus(); return false; }”>

Pelo que eu entendi, quando ocorre a leitura do código de barras, ele deve enviar um evento de tecla pressionada (código 13 que é equivalente a tecla return) aí nesse momento você deve passar o foco para o próximo campo chamando operacao.focus(). O onblur me parece desnecessário pois ele só seria chamado quando o campo da etiqueta perdesse e isso só vai acontecer se passarmos o foco para o outro campo.

Faz o teste e avisa pra gente se ajudou!

Jeferson, boa noite!

Fiz conforme você falou e continua o focus no campo etiqueta ele não foi para o campo 'operacao"

Olá Jorge,

Fiz alguns testes aqui e acredito que pra funcionar a gente vai precisar trocar o operacao.focus() por:

document.getElementById('entradaDados:operacao').focus()

No primeiro código, operacao não está definido no Javascript, precisamos localizar o elemento na página usando o getElementById e só então invocar o focus nele.

Vamos fazer mais esse teste pra ver se resolve!

Jeferson, boa noite!

Funcionou... show de bola, muito obrigado pela ajuda é muito bom contar com o apoio de vocês valeu mesmo...

Vou dormir felizão....