2

我正在使用 primefaces 日历。日历放置在 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通常由 a 包围,并且<span>按钮是该<span>元素内 inputText 的兄弟。

因此,您可以使用以下 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 回答