2

プライムフェイスのカレンダーを使用しています。カレンダーは、primefaces のデータテーブルに配置されます。

jquery を使用してカレンダーを無効にする必要があります。

<p:column width="170">
    <p:calendar id="vendorStartDate" value="#{articlePromo.fechaInicio}"
       pattern="dd/MM/yyyy" mode="popup" showOn="button">
    </p:calendar>
</p:column>

以下はカレンダーを無効にしませんでした:

  • $(#vendorStartDate).attr('disabled','disabled');

  • document.getElementById("vendorStartDate").disabled = true;

ソースを表示すると、実際には入力テキストとボタンであることがわかりました。入力テキストは id = vendorStartDate_inputを取得します。しかし、ボタンはIDを取得しませんでした。

カレンダーの有効化/無効化は、他の列の値に依存します。そのため、onChangeその列のイベントでは、カレンダー コンポーネント (入力テキストとボタンの両方) を無効にする必要があります。

次を使用して入力テキストを無効にすることができました:

  • document.getElementById("vendorStartDate_input").disabled = true;

ボタンを無効にするにはどうすればよいですか?

ありがとう、シカ

4

1 に答える 1

2

ID でボタンを選択できない場合は、別のセレクターを使用する必要があります。

p:calendar通常は で囲まれ、ボタンはこの要素<span>内の inputText の兄弟です。<span>

したがって、次の jquery ステートメントを使用できます。

$('#vendorStartDate_input').siblings('button').attr('disabled', 'true');

テーブル内のすべてのカレンダー要素を取得する場合:

$('[id$="vendorStartDate_input"]').siblings('button').attr('disabled', 'true');

これにより、ID が で終わるすべての要素が選択されますvendorStartDate_input

于 2012-04-25T06:34:22.677 に答える