JSF:选项的SelectOneRadio快捷方式

时间:2010-03-17 10:51:28

标签: javascript jsf richfaces facelets primefaces

我有以下h:selectOneRadio

<h:selectOneRadio id="#{prefix}_rating" value="#{examinationPanel.tempResult}" >
<f:selectItems value="#{examinationPanel.options}"></f:selectItems>
</h:selectOneRadio>

然后,支持bean根据一些用户偏好加载选项:

public List<SelectItem> loadOptions (Set<ResultEnum> possibleResults){
    List<SelectItem> options = new ArrayList<SelectItem>();
    for(ResultEnum result:possibleResults){
        SelectItem option = new SelectItem(result,messages.getString(result.name()));
        options.add(option);
    }
    return options;
}

如何定义广播组中选项的快捷方式?例如,键入“1”选择第一个选项,键入“2”第二个,等等...

提前致谢! PS。我正在使用Jsf 1.2,Richfaces,Primefaces和Facelets。

3 个答案:

答案 0 :(得分:3)

默认情况下,这不是内置的。您最好的度假胜地是使用JavaScript。将函数附加到keypress的{​​{1}}事件,检查按下的键的<body>,并相应地更改下拉列表的keyCode项。这只能使用jQuery在几行中完成。这是一个SSCCE,只是复制'n'paste'n'run它。

selected

如果你想支持10个或更多项目,你需要保持一堆按下的键,立即应用它并引入超时来重置堆栈(1秒钟?)。

答案 1 :(得分:2)

您可以调查<rich:hotKey>是否会有所帮助。简而言之,它允许您定义键盘快捷键,但它可能需要一些jQuery知识。

答案 2 :(得分:2)

PrimeFaces hotKey也可以提供帮助。