如何使用 jQuery 修改一组具有相同类的 p:selectBoolean复选框?



我有一个PrimeFacesp:selectBooleanCheckbox

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

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

这比使用 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();
}
}

您可以使用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()});

最新更新