使用widgetVar,如何禁用或启用PrimeFaces selectOneButton

时间:2017-10-27 16:39:59

标签: javascript jquery jsf primefaces jsf-2

我正在使用PrimeFaces 6.1 widgetVar来启用和禁用网页上的多个元素。我正在使用以下代码:

JavScript / jQuery的:

PF('widget_select_one_button_1').getJQ().parent().removeAttr('disabled');
PF('widget_select_one_button_1')..getJQ().parent().attr("disabled", true);

XHTML:

<h:form id="form-1">
  <p:selectOneButton id="button-1" value="#{search.drawings}">
    <f:selectItems value="#{search.drawings}" var="x" itemLabel="#{drawings}" itemValue="#{drawings}"/>
  </p:selectOneButton>
</h:form>

我已经确认我使用了正确的widgetVar,因为我能够启用和停用selectOneRadio。当我决定将selectOneRadio更改为selectOneButton时,我无法找到有关如何启用或停用该元素的任何信息。

我使用了上面显示的JavaScript的多种变体。我尝试在.enable()变量上调用.disable() / widgetVar,然后使用我尝试添加的jQuery对象并删除disabled属性。我也尝试了与jQuery对象的父相同的(如上所示)。

有没有人知道如何启用或禁用selectOneButton

1 个答案:

答案 0 :(得分:2)

我使用css选择器搜索这些元素的后代中所有的无线电输入,然后对每个项目应用禁用功能:

PF('yourWidgetVarName').getJQ().find('input[type="radio"]').each(function (index, element) { $(this).attr("disabled", true); });

请参阅:https://api.jquery.com/find/