0

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

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

没有任何效果。任何想法,将不胜感激。(顺便说一句,我也没有在热键中找到任何关于“关键”目标的文档,并且希望能得到一个关于它可能在哪里的指针。)

4

1 回答 1

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"/>
于 2013-10-12T16:38:22.423 回答