【问题标题】:Primefaces selectOneButton: set selected option via JS/jqueryPrimefaces selectOneButton:通过 JS/jquery 设置选定选项
【发布时间】:2013-01-15 15:38:22
【问题描述】:

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

当在组件上设置'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”。这是正确的做法吗?

【问题讨论】:

    标签: jquery jsf primefaces client-side


    【解决方案1】:

    您需要传递表示具体<div> 的jQuery 对象,该对象表示UI 中所需的按钮。它们都可以通过小部件 var 的 buttons 属性获得,该属性返回一个数组。

    所以,如果你需要选择第三个按钮,那么这个例子应该可以做到,提供了一个小部件变量名称foo

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

    请注意,这似乎是一种内部方法(未使用模块模式隐藏),并且未在用户指南中记录,因此在未来的 PF 版本中可能会发生未记录的更改。

    【讨论】:

    • 最后...来自大师本人的第一个答案:) 我想知道为什么我总是得到一个 TypeError(对象# 没有方法'addClass')。我不知道我必须在按钮周围使用 $ 功能。等不及我订购的 jquery 书明天到货了。谢谢 BalusC,我真的很喜欢阅读您的所有答案并学习 JSF 概念的许多细节。
    • 不客气。 addClass() 确实只在 jQuery 对象上可用,而不是在普通的 HTML DOM 元素上。
    猜你喜欢
    • 2023-03-04
    • 2013-07-01
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多