2017-09-04 2 views
4

J'utilise PrimeFaces. Et sur ce clavier, vous souhaitez utiliser un événement ajax qui se déclenche chaque fois qu'une touche est cliquée.p: clavier ajax events

Voici le code:

<p:keyboard placeholder="Search" value="#{menu.searchValue}" layout="qwertyBasic"> 
    <p:ajax event="click" listener="#{menu.search()}" update=":form:menuItems"/> 
</p:keyboard> 

Cela ne fonctionne que lorsque je clique sur le terrain, il est auto, pas quand je clique sur les touches du clavier.

Je suis sur JSF 2.2

+0

Aucune idée, avez-vous vérifié la source javascript du composant? C'est ** ouvert ** – Kukeltje

Répondre

2

Vous pouvez accomplir cela avec p: attributs clavier:

  • onkeyup
  • onkeypress
  • onkeydown

Par exemple:

<p:remoteCommand name="RC_name" 
       actionListener="#{TestBean.function}" /> 

<p:keyboard placeholder="Search" 
      value="#{menu.searchValue}" 
      layout="qwertyBasic" 
      onkeyup="RC_name()" > 
    <p:ajax event="click" 
      listener="#{menu.search()}" 
      update=":form:menuItems"/> 
</p:keyboard> 

Ou si vous voulez attraper la clé spécifique (par exemple ENTER cliquez):

<p:keyboard value="#{menu.searchValue}" 
      onkeyup="if(event.keyCode == 13){ 
          RC_name(); 
          return false; 
        }" > 
</p:keyboard> 
+0

Cela a fonctionné si bien. merci beaucoup @JokerTheFourth – aiden

+0

Vous êtes les bienvenus :) pouvez-vous simplement marquer la réponse comme résolu le problème. – JokerTheFourth