使用jQuery更改p:selectOneMenu的项目
我有一个PrimeFaces 5.1
,它在DOM中生成以下选择:
-- Year -- 2015 2014 2013 2012 2011 2010 2009
我有一个
触发一个jQuery函数,它将处理我的
。
jQuery函数:
function changeDropDownList() { $('[id$=selectYear_input]')[0].selectedIndex = 2; }
未更新。 这是怎么造成的,如何解决?
基本上是上的
层,它在视觉上是隐藏的。 DOM中任何更改都不会反映在
。 它只发生在另一个方向。
但它有一堆附加的事件监听器,应该反映在隐藏的 。 一种方法是在菜单面板中触发感兴趣的
.ui-selectonemenu-item
上的click
事件。
鉴于一个
您可以在jQuery中选择第3项,如下所示
PF("selectYear").panel.find(".ui-selectonemenu-item:eq(2)").click();
或者,您也可以通过
(最终使用jQuery的$.ajax()
)来完成它:
... ...
这只是一个小小的往返。
根据3.4到5.1的PF文档,如果在p:selectOneMenu上分配widgetVar属性,则可以在窗口小部件上调用selectValue(value)。
这会选择指定的值,但假设您知道目标值字符串和大小写。
它不适用于数字索引。