Olá pessoal. Estou com um problema quando envio dados de um form com a tecla "enter" utilizando jsf. Os dados são enviados normamlmente mas o action da tag <h:commandButton action="#{meuBean}" /> não é acionado. O action só funciona quando eu clico no butão com o mouser. Tem alguma forma de acionar o action também quando eu teclo enter? já pesquisei em vários lugares e até agora não encontrei uma solução.
Da uma olhada nos atributos accesskey e onkeypress.
Não estou certo quanto ao accesskey. Mas usando o onkeypress, você pode atribuir uma chamada javascript. Nesse método javascript você verifica se a tecla pressionada é o ENTER, tem muito script de exemplo assim na internet.
L
lionels
cara se voce estiver usando jsf com richfaces tem um componente chamado hotkey que faz isto
um exemplo disto seria <rich:hotkey selectot="idInputText key=“return” handler=“iddobotao.click();” >
nesse site tem exemplos http://livedemo.exadel.com/richfaces-demo/richfaces/hotKey.jsf
T
tonkleber
Segui a dica do lionels e resolvi o problema usando richfaces. O código ficou assim:
.
.
.
<h:form><rich:panelheader="Busca"><h:outputTextvalue="Entre com o código:"/><h:inputTextid="codigo"value="#{produtoMB.produto.codigo}"/><rich:hotKeyselector="#codigo"key="return"handler="#{rich:element('buscar')}.onclick();return false;"/><a4j:commandButtonaction="#{produtoMB.buscaId}"value="Buscar"reRender="output"id="buscar"/></rich:panel></h:form>
.
.
.
Valeu pessoal
T
thimor
tonkleber:
Segui a dica do lionels e resolvi o problema usando richfaces. O código ficou assim:
.
.
.
<h:form><rich:panelheader="Busca"><h:outputTextvalue="Entre com o código:"/><h:inputTextid="codigo"value="#{produtoMB.produto.codigo}"/><rich:hotKeyselector="#codigo"key="return"handler="#{rich:element('buscar')}.onclick();return false;"/><a4j:commandButtonaction="#{produtoMB.buscaId}"value="Buscar"reRender="output"id="buscar"/></rich:panel></h:form>
.
.
.
Valeu pessoal
Quando usei o a4j:commandButton deu um problema esquisito na navegacao. A pagina seguinte perdia toda a configuraçao e as acoes dos botoes e links. nao deu esse problema com vc?
T
tonkleber
Não da pra te dizer porque quando eu uso a4j:commandButton é pra carregar o resultado na mesma página utilizando o recurso ajax reRender=“idDoComponente” atualizando somente a área com a “id” indicado no reRender.
Quando mostro o resultado em outra página eu uso h:commandButton mesmo.
C
Charles
Valeu pela dica, me ajudou tb, funcionou redodinho!