1

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}。しかし、この単純なアクションには別の往復が必要なので、私はこれが好きではありません。

4

0 に答える 0