我正在使用Primefaces 5.0。
当我在页面中选中时,完全跳过selectOneButton元素。代码片段如下。
有人可以通过p:selectOneButton?
<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>
答案 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');
}
});
});