添加javascript更改触发器到Primefaces选择菜单



我有一个相当复杂的表单与PrimeFaces 4.0构建,我想添加一些客户端jQuery/Javascript-Code应该被触发,如果任何表单输入字段的值发生变化。

对于<p:inputText><p:selectBooleanCheckbox>,我可以用$(this).change(handler);注册一个事件处理程序

我如何为<p:selectonemenu>注册这个处理程序?在元素本身或嵌入的_input -Field上注册处理程序不会在我更改值时触发处理程序。

注意:我不想直接在Primefaces-Tag上设置处理程序,而是通过jQuery动态地设置。

任何帮助都是非常感激的,谢谢!

找到解决方案:Primefaces创建了一个单独的面板,用于显示用户单击<p:selectonemenu>时显示的选项。这个面板的id是选择菜单的id +"_panel"。因为它是一个面板而不是任何类型的输入,所以必须使用click()而不是change()例子:

$(PrimeFaces.escapeClientId($(this).attr('id')+"_panel")).click(handler);

显然,在处理程序中,你必须像这样切换回菜单:

if($(this).attr('id').endsWith('_panel')){
                widget =  $(PrimeFaces.escapeClientId($(this).attr('id').substring(0,$(this).attr('id').length - '_panel'.length))); 

相关内容

  • 没有找到相关文章

最新更新