使用javascript禁用primefaces selectBooleanCheckbox

时间:2016-07-28 00:11:10

标签: javascript checkbox primefaces jsf-2.2 selectbooleancheckbox

我尝试直接在Javascript中禁用primefaces输入组件。 应该基于某些其他条件禁用(并启用)约p:selectBooleanCheckbox(如果某个值填入另一个p:inputText)。

我的环境如下:

  • JSF Mojarra 2.2.7
  • Primefaces 5.1
  • PF Extensions 3.0.0
  • Apache Tomcat 7.0.47

我已经尝试了很多这样做 - 正常p:inputText工作的相同内容不适用于p:selectBooleanCheckbox

JSF的部分:

   <p:selectBooleanCheckbox id="thing"
      widgetVar="thingWv"
      disabled="#{myBB.chkboxDisabled}"
      pt:pfId="thingChkBox"
      styleClass="thingy"
      itemLabel="The Thing"
      value="#{myBB.chkbox}" />

用于停用的Javascript部分:

   console.log ('disable the thing' );
   $('[pfId*=thingChkBoxLabel]').addClass("ui-state-disabled");
   $('[pfId*=thingChkBox]').addClass("ui-state-disabled");
   $('[pfId*=thingChkBox]').prop('disabled', true);
   $('[pfId*=thingChkBox]').attr('disabled', 'disabled');
   $('[pfId*=thingChkBox] > div > input').addClass("ui-state-disabled");
   $('[pfId*=thingChkBox] > div > input').prop('disabled', true);
   $('[pfId*=thingChkBox] > div > input').attr('disabled', 'disabled');
   $('[pfId*=thingChkBox] > div.ui-chkbox-box').addClass("ui-state-disabled");
   $('[pfId*=thingChkBox] > div.ui-chkbox-box').prop('disabled', true);
   $('[pfId*=thingChkBox] > div.ui-chkbox-box').attr('disabled', 'disabled');
   PF('thingWv').disable();

我还尝试了一些不记得的东西......但现在我不知道如何继续。 (在此之后,它看起来像已禁用,但仍然可以检查和取消选中)

另一种方法是在禁用属性中使用类似#{myBB.othervalue > 5}的内容。但是我不喜欢这个,因为这个简单的动作需要另一次往返。

0 个答案:

没有答案