如何使用jQuery修改一组具有相同类的p:selectBooleanCheckbox?

问题描述 投票:1回答:2

我有一个PrimeFaces p:selectBooleanCheckbox

<p:selectBooleanCheckbox styleClass="myCLass" onchange="callsMethod();" value="true" />

我想要这样的东西:$('.myCLass').prop( 'checked', true )用于动态设置p:selectBooleanCheckbox的值。

javascript jsf primefaces
2个回答
2
投票

您可以使用PrimeFaces.getWidgetById方法为分配了styleClass的每个复选框获取Primefaces小部件:

切换所有具有styleClass="myCLass"的复选框:

$('.myCLass').each(function(){PrimeFaces.getWidgetById(this.id).toggle()});

选中所有具有styleClass="myCLass"的复选框:

$('.myCLass').each(function(){PrimeFaces.getWidgetById(this.id).check()});

取消选中具有styleClass="myCLass"的所有复选框:

$('.myCLass').each(function(){PrimeFaces.getWidgetById(this.id).uncheck()});

3
投票

这比使用widgetVar更容易。

  1. 将widgetVar添加到您的组件,如...
<p:selectBooleanCheckbox widgetVar="wgtMyCheckBox" onchange="callsMethod();"  />
  1. 在您的Javascript代码中,使用WidgetVar来获取或设置值。
    PF('wgtMyCheckBox').isChecked(); -- returns current state
    PF('wgtMyCheckBox').check(); -- checks the box
    PF('wgtMyCheckBox').uncheck(); -- unchecks the box
    PF('wgtMyCheckBox').toggle(); -- toggles the current state to the opposite state

如果要检查屏幕上的所有复选框,可以循环显示小部件。

for (var widgetVar in PrimeFaces.widgets) {
   var widget = PrimeFaces.widgets[widgetVar];
   if (widget && widget instanceof PrimeFaces.widget.SelectBooleanCheckbox) { 
       widget.check();
   }
}

© www.soinside.com 2019 - 2024. All rights reserved.