Javascript で直接、primefaces 入力コンポーネントを無効にしようとしています。p:selectBooleanCheckbox
他のいくつかの条件に基づいて無効にする(および有効にする)必要があるについてです(特定の値が別の に入力されている場合p:inputText
)。
私の環境は次のようになります。
- JSF モハラ 2.2.7
- プライムフェイス5.1
- PF 拡張機能 3.0.0
- アパッチ トムキャット 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();
また、覚えていない js をいくつか試してみましたが、どうすればよいかわかりません。(この後は無効に見えますが、チェックとチェック解除はまだ可能です)
もう 1 つの方法は、無効化された属性に のようなものを含めることです#{myBB.othervalue > 5}
。しかし、この単純なアクションには別の往復が必要なので、私はこれが好きではありません。