2013-01-15 39 views
2

是否可以在客户端更改JSF selectOneButton组件的选定项目? Primefaces是否已经提供了一种方便的方法来执行此操作?Primefaces selectOneButton:通过JS/jquery设置选定的选项

当在组件上设置'widgetVar'属性时,相应的JS对象有一个方法'select(a)',它似乎关闭先前激活的按钮,然后激活由参数'a'给出的新按钮:

select: function(a) 
{ 
    this.buttons.filter(".ui-state-active").removeClass("ui-state-active ui-state-hover").children(":radio").removeAttr("checked"); 
    a.addClass("ui-state-active").children(":radio").attr("checked", "checked").change() 
} 

但我不知道要设置为参数'a'。这是正确的方式吗?

回答

6

您需要传递代表UI中所需按钮的具体<div>的jQuery对象。它们全部由widget var的buttons属性提供,它返回一个数组。

所以,如果您需要选择第三个按钮,那么这个例子应该这样做,所提供的foo一个widget变数名称:

foo.select($(foo.buttons[2])); 

注意,这似乎是一个内部方法(ISN”使用模块模式隐藏)并且未在用户指南中记录,因此它将受到未来PF版本中的未记录更改。

+0

终于......主人自己的第一个回答:) 我想知道为什么我总是得到一个TypeError(Object#没有方法'addClass')。我不知道我必须使用按钮周围的$函数。不能等待明天我的订购jquery书。谢谢BalusC,我非常喜欢阅读你所有的答案,并且学习了很多关于JSF概念的细节。 –

+0

不客气。 'addClass()'确实只在jQuery对象上可用,而不是在纯HTML DOM元素上。 – BalusC

相关问题