【问题标题】:Add javascript change trigger to Primefaces selectonemenu将 javascript 更改触发器添加到 Primefaces selectonemenu
【发布时间】:2015-10-04 11:56:04
【问题描述】:

我有一个使用 PrimeFaces 4.0 构建的非常复杂的表单,我想添加一些客户端 jQuery/Javascript 代码,如果任何表单输入字段的值发生变化,应该触发这些代码。

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

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

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

非常感谢任何帮助,谢谢!

【问题讨论】:

    标签: javascript jquery jsf jsf-2 primefaces


    【解决方案1】:

    找到了解决办法: Primefaces 创建一个单独的面板来显示用户点击<p:selectonemenu> 时显示的选项。此面板的 id 是 selectonemenu + "_panel" 的 id。因为它是一个面板而不是任何类型的输入,所以必须使用 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))); 
    

    【讨论】:

      猜你喜欢
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      • 2012-12-21
      • 2012-01-05
      • 2013-03-22
      • 1970-01-01
      • 1970-01-01
      • 2015-09-03
      相关资源
      最近更新 更多