p:selectOneButton tabindex在primefaces 5.0中不起作用

时间:2015-02-07 06:09:26

标签: primefaces tabindex

我正在使用Primefaces 5.0。
当我在页面中选中时,完全跳过selectOneButton元素。代码片段如下。
有人可以通过p:selectOneButton?

来获取tabindex
<p:selectOneButton tabindex="50" id="orderAction" value="#{orderController.side}" onchange="toggleBuySell();">
    <f:selectItems value="#{orderDataContainer.actionTypes}"/>
    <p:ajax event="change" update=" messages" process="@this " listener="#{orderController.validateAction}" oncomplete="someAction();"/>
</p:selectOneButton>

1 个答案:

答案 0 :(得分:0)

我在评论中建议的不起作用,passtrough属性没有添加到输入元素。 但是,您可以使用一些jQuery来管理它:

将widgetVar设置为selectOneButton
迭代其输入:
删除他们隐藏的财产(否则他们不会被标记) 将它们移出屏幕
绑定焦点和模糊事件以突出显示相应的按钮(这些是div)

<p:selectOneButton widgetVar="orderActionWidget" id="orderAction" value="#{orderController.side}" onchange="toggleBuySell();">
    <f:selectItems value="#{orderDataContainer.actionTypes}"/>
    <p:ajax event="change" update=" messages" process="@this " listener="#{orderController.validateAction}" oncomplete="someAction();"/>
</p:selectOneButton>

PF('orderActionWidget').buttons.find('input').each(function(index, value) {
    $(value)
    .attr('tabindex', 50 + index)
    .removeClass('ui-helper-hidden')
    .css('position', 'absolute')
    .css('left', '-1000px')
    .bind({
    focus : function() {
        $(this).parent().addClass('ui-state-hover');
    },
    blur : function() {
        $(this).parent().removeClass('ui-state-hover');
    }
    });
});