如何在jsf / richfaces xhtml中实现热键

时间:2013-10-11 18:25:24

标签: jsf richfaces

这似乎是一件非常简单的事情,但我已经搜索过,无法找到如何做到这一点。

在richfaces / jsf中,我想在一个简单的表单上实现一些热键,例如:

<h:panelGrid columns="3" width="500">
    <h:outputLabel value="User"/>
    <h:commandButton id="userAdd" value="Add" action="staffNewUser"/>
    <h:commandButton id="userEdit" value="Edit" action="staffEditUsers"/>
    ...
</h:panelGrid>

我尝试了很多东西来获得热键,包括:

<rich:hotKey key="alt+ctrl+u" >
    <rich:componentControl target="userAdd"  operation="click"/>
</rich:hotKey> 

没有任何作用。任何想法,将不胜感激。 (顺便说一句,我也没有找到热键中“关键”目标的任何文档,并希望指出可能的位置。)

1 个答案:

答案 0 :(得分:0)

对于输入组件使用enabledInInput时,您缺少必需的<rich:hotkey/>属性。所以你应该拥有的是

<rich:hotKey key="alt+ctrl+u" enabledInInput="true">
    <rich:componentControl target="userAdd"  operation="click"/>
</rich:hotKey> 

进一步阅读:

编辑:你真的不需要组件控件。您可以直接使用热键的onkeydown事件:

<rich:hotKey onkeydown="#{rich:element('userAdd')}.click();return false;" preventDefault="true" key="alt+ctrl+u"/>