P: ajax keyboard events

I am using PrimeFaces. And on this keyboard, I would like to use the ajax event, which fires every time a key is pressed.

Here is the code:

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

This only works when I press it in the field myself, and not when I press the keys on the keyboard.

I'm on JSF 2.2

+4
source share
1 answer

You can accomplish this with the p: keyboard attributes:

  • Onkeyyp
  • OnKeyPress
  • Onkeyyown

For instance:

<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>

Or, if you want to catch a certain key (for example, press ENTER):

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

Source: https://habr.com/ru/post/1685038/


All Articles