2012-04-24 37 views
2

我正在使用primefaces日曆。日曆放置在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的兄弟。如果你想獲得該表中的所有日曆元素

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

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

這將選擇與IDS與結尾的所有元素

所以,你可以使用下面的jQuery聲明vendorStartDate_input