Olá pessoal. Tenho um formulario JSF e dentro dele um painel. Nesse painel o usuário necessita que os dados sejam digitados de forma rápida. Tenho dois inputText e um commandButton. O usuário digita o valor no primeiro inputText e tecla o foco, então, vai pro segundo inputText, o usuário digita e tecla o foco, então vai pro commandButton, o usuário tecla , a action do commandButton é executada e o foco volta pro primeiro inputText. (Isso é o que deveria ser!).
O problema é que, quando tecla-se no primeiro inputText, o foco até cai certo no segundo, porém a action do commandButton também é executada… tô quebrando a cabeça aqui pra resolver em javascript, mas ta dificil, rsrsrsrsr. Abaixo os códigos:
<p:panel header=“Inserir Itens no Inventário” id=“adicionaItens”>
Código do Item | Quantidade Constatada | |
---|---|---|
<p:inputText onkeyup="{if (event.keyCode == 13) setaFoco(‘Formulario:qtd’)}" value="#{itemInventarioEstoqueControlador.itens.codigo}" size=“25” id=“cod” /> |
<p:inputText onkeyup="{if (event.keyCode == 13) setaFoco(‘Formulario:cod’)}" value="#{itemInventarioEstoqueControlador.itens.qtdeConstatada}" size=“40” id=“qtd”/> |
<p:commandButton id=“save” ajax=“false” value=“Salvar” action="#{itemInventarioEstoqueControlador.inserirItens}" onkeyup="{if (event.keyCode == 13) setaFoco(‘Formulario:cod’)}" update=“itensInventario” /> |
</p:panel>
<script type="text/javascript">
function setaFoco(arg) {
document.getElementById(arg).focus()
}
</script>
Peço ajuda pra galera pra resolvermos esse problema, se alguém tiver alguma idéia totalmente diferente, não tem problema!!
Um abraço a todos!