2017-09-04 96 views
4

我正在使用PrimeFaces。在这个键盘上,想要使用一个ajax事件,点击某个键后每触发一次。p:键盘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

+0

不知道,你检查组件的JavaScript源?它**是**开放... – Kukeltje

回答

2

可以实现与号码:键盘属性:

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

或者,如果你想捕获特定的键(例如ENTER点击):

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

这工作得很好。非常感谢@JokerTheFourth – aiden

+0

不客气:)你可以标记答案解决问题。 – JokerTheFourth