我尝试直接在Javascript中禁用primefaces输入组件。
应该基于某些其他条件禁用(并启用)约p:selectBooleanCheckbox
(如果某个值填入另一个p:inputText
)。
我的环境如下:
我已经尝试了很多这样做 - 正常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}
的内容。但是我不喜欢这个,因为这个简单的动作需要另一次往返。