这似乎是一件非常简单的事情,但我已经搜索过,无法找到如何做到这一点。
在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>
没有任何作用。任何想法,将不胜感激。 (顺便说一句,我也没有找到热键中“关键”目标的任何文档,并希望指出可能的位置。)
答案 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"/>