键盘Ajax事件

4

我正在使用PrimeFaces。在这个键盘上,我想使用一个ajax事件,在每次点击键后触发。

以下是代码:

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

只有在我点击字段本身时才起作用,而不是在我按键盘上的键时。

我使用的是JSF 2.2。


不知道,你有检查组件的JavaScript源代码吗?它是公开的... - Kukeltje
1个回答

2
你可以通过p:keyboard属性来实现:
  • onkeyup(当按键被释放时)
  • onkeypress(当按键被按下并持续时)
  • onkeydown(当按键被按下但还没有被释放时)
例如:
<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>

或者,如果你想捕获特定的按键(例如回车键):

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

不客气 :) 你能把答案标记为解决问题吗? - JokerTheFourth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接