1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Clicar no botão com a tecla enter(Richfaces - hotkey?)

Bom dia, pessoal.

Estou tentando fazer com que o botão seja clicado com a tecla enter, numa tela de cadastro, mas não estou conseguindo. Abaixo segue a imagem de parte da tela:

https://www.filepicker.io/api/file/3WbBoChlQ5WsbTUOwkW1

o código da tela é o seguinte:

<ps:subtitulo header="Solicitante">

                    <ps:prestadorSadt id="tabelaSaPrestadorLocalidadeSolicitante" binding="#{ManterPagina.entidadeRelacionada[1]}" value="#{ManterPagina.entidade.saPrestadorLocalidadeSolicitante}" />
                    <h:commandButton id="id1" value="pesquisar"/>
</ps:subtitulo>

Notem que há um componente embutido, o "ps:prestadorSadt", cujo código é:

<ps:dataTable id="${id}" binding="#{binding}" rendered="#{rendered}" find="#{find}">
            <ui:define name="parameters selected">
                <ps:outputText header="Código"           value="#{value.id.idPrestador}"  />
                <h:outputText  value=" - " />
                <ps:outputText header="${null}"          value="#{value.id.idLocalidade}" />

                <ps:outputText id="nome_prestador" header="Nome Prestador"   value="#{value.descricao}"       />

                <ui:insert name="parameters selected" />            </ui:define>

             <ui:define    name="search parameters">

                 <!-- <rich:hotKey key="return" handler="#{rich:element('form:j_id83InputDate')}.click()" selector="form:j_id83PopupButton"/> -->
                <ps:field id="prestador" header="Nome Prestador"        value="#{value.descricao}"       validate="string"                                             size="80" /> 

                <ps:field header="Código Prestador"      value="#{value.id.idPrestador}"  validate="integer" idMask="${idPrestadorId}"     mask="99999" size="5"  />
                <ps:field header="CRM Pestador"          value="#{value.saPrestador.crm}"                                                               size="5"  />
                <!-- <ui:insert name="search parameters" /> -->
            </ui:define> 
            <ui:define     name="columns">
                <ps:column header="Código"               value="#{entidade.id.idPrestador}"                  />
                <ps:column header="Perfil"               value="#{entidade.id.idLocalidade}"                 />
                <ps:column header="Nome"                 value="#{entidade.descricao}"                       />
                <ps:column header="Localidade"           value="#{entidade.local.nome}"/>
            </ui:define>
</ps:dataTable>

O componente acima chama um ps:dataTable, cujo código é:

<ui:composition>

        <c:if test="${empty imageButtonAlter}">
            <c:set var="imageButtonAlter" value="${BundleApresentacaoImagem.botaoAlterarPequeno}"/>
        </c:if>
        <sck:dataTable id="${id}"
                       binding="#{binding}"
                       imageButtonFind             ="${BundleApresentacaoImagem.botaoPesquisarPequeno}"
                       imageButtonAlter            ="#{imageButtonAlter}"
                       imageButtonDataTablePrevious="${BundleApresentacaoImagem.botaoDataTableAnterior}"
                       imageButtonDataTableNext    ="${BundleApresentacaoImagem.botaoDataTableProximo}"
                       />

    </ui:composition>

Por fim, o componente acima chama o sck:dataTable, cujo código é:

<ui:component id="${id}">

        <!-- a4j:outputPanel rendered="#{!binding.selecionado}" -->
            <!-- ui:insert name="search parameters" / -->
            <!-- a4j:commandButton value="Pesquisar" actionListener="#{binding.pesquisar}" image="${imageButtonFind}" reRender="${id}"/ -->
        <!-- /a4j:outputPanel -->
        <c:if test="${pesquisa eq 'true'}">
            <c:set var="rendered" value="#{ManterPagina.parametrosPesquisa}" />
        </c:if>

        <c:if test="${pesquisa eq 'false'}">
            <c:set var="rendered" value="${not (ManterPagina.parametrosPesquisa)}" />
        </c:if>

        <c:if test="${empty rows}">
            <c:set var="rows" value="10" />
        </c:if>

        <c:if test="${empty rendered}">
            <c:set var="rendered" value="true" />
        </c:if>

        <c:if test="${empty reRender}">
            <c:set var="rendered" value="painel" />
        </c:if>

        <a4j:outputPanel rendered="#{binding.selecionado and rendered}">
            <ui:insert name="parameters selected" />
            <sck:espaco />
            <c:if test="${((empty find) or (find eq 'true')) and binding.selecionado}">

                <a4j:commandButton  value="Modificar" actionListener="#{binding.pesquisar}" image="${imageButtonAlter}" reRender="${id}, ${reRender}" oncomplete="${oncomplete}" />
            </c:if>
        </a4j:outputPanel>
        <a4j:outputPanel rendered="#{!binding.selecionado and rendered}">
            <c:set var="bindingTemp" value="#{binding}" />
            <c:set var="binding"     value="${null}" />
            <c:set var="idTemp"      value="${id}" />
            <c:set var="id"          value="${null}" />
            <ui:insert name="search parameters" />
            <c:set var="id"          value="${idTemp}" />
            <c:set var="binding"     value="#{bindingTemp}" />
            <sck:espaco />
            <c:if test="${((empty find) or (find eq 'true')) and not (binding.selecionado)}">

                  <a4j:commandButton value="Pesquisar" actionListener="#{binding.pesquisar}" image="${imageButtonFind}"  reRender="${id}, ${reRender}" oncomplete="${oncomplete}"  />
            </c:if>
            <!-- c:if test="${(obrigatorio eq 'true') and not (binding.selecionado)}">
                <h:outputText styleClass="vermelho"  value="Campo Obrigatório." />
            </c:if -->
        </a4j:outputPanel>
        <a4j:outputPanel layout="block" rendered="#{binding.mostrarLista and rendered}">
            <rich:dataTable id="${id}DataTable" value="#{binding.gerenteLista.lista}" var="entidade" rows="${rows}">
                <c:set var="bindingTemp" value="#{binding}" />
                <c:set var="binding"     value="${null}" />
                <c:set var="idTemp"      value="${id}" />
                <c:set var="id"          value="${null}" />
                <ui:insert name="columns" />
                <c:set var="id"      value="${idTemp}" />
                <c:set var="binding" value="#{bindingTemp}" />
                <c:if test="${(empty select) or (select eq 'true')}">
                    <h:column>
                        <a4j:commandButton  actionListener="#{binding.selecionar}" value="#{entidade}" image="${imageButtonAlter}" reRender="${id}, ${reRender}" oncomplete="${oncomplete}" />
                    </h:column>
                </c:if>
                <f:facet name="footer">
                    <h:panelGrid columns="2">
                        <rich:datascroller align="left" for="${id}DataTable" />
                        <h:outputText value="Quantidade total de linhas: #{binding.gerenteLista.sizeItemTotal}" style="text-align: left;"/>
                    </h:panelGrid>
                </f:facet>
            </rich:dataTable>
            <!-- h:outputText value="Total de Itens: #{binding.gerenteLista.sizeItemTotal}" /  -->
        </a4j:outputPanel>
        <c:set var="id"                           value="${null}" />
        <c:set var="binding"                      value="${null}" />
        <c:set var="imageButtonFind"              value="${null}" />
        <c:set var="alter"                        value="${null}" />
        <c:set var="imageButtonAlter"             value="${null}" />
        <c:set var="imageLinha"                   value="${null}" />
        <c:set var="imageButtonDataTablePrevious" value="${null}" />
        <c:set var="imageButtonDataTableNext"     value="${null}" />
        <c:set var="pagingClass"                  value="${null}" />
        <c:set var="rendered"                     value="${null}" />

    </ui:component>

Agora pergunto: alguém tem ideia de como fazer o hotkey funcionar para, ao se preencher o campo "Nome Prestador", na tela, e apertar a tecla enter, automaticamente o botão pesquisar, "lupa pequena" seja clicado? ou será que posso usar outra coisa como javascript?

Estou aberto a sugestões, obrigado.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java-ee richfaces ou faça a sua própria pergunta.