2012-04-24 42 views
2

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

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;

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

おかげで、 Shikha

答えて

2

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

通常p:calendar<span>で囲まれ、このボタンはこの<span>要素内のinputTextの兄弟です。これは、IDSで終わるを持つすべての要素を選択します

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

:あなたは、テーブル内のすべてのカレンダーの要素を取得したい場合は

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

は、だから、次のjQueryのステートメントを使用することができますvendorStartDate_input

関連する問題