javascript - 如何使用 jquery 禁用日历

标签 javascript jquery jsf-2 primefaces

我正在使用 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('已禁用','已禁用');

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

在查看源代码时,我可以识别出它实际上是一个输入文本和一个按钮。输入文本获取 id = vendorStartDate_input。但该按钮没有获得 id。

日历的启用/禁用取决于其他列的值。因此,在该列的 onChange 事件中,我需要禁用日历组件 - 输入文本和按钮。

我能够使用以下方法禁用输入文本:

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

如何禁用该按钮?

谢谢, 什卡

最佳答案

如果无法通过 id 选择按钮,则需要使用不同的选择器。

p:calendar通常被 <span> 包围该按钮是 <span> 中的 inputText 的同级元素。

因此您可以使用以下 jquery 语句:

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

如果您想获取表格内的所有日历元素:

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

这将选择 id 以 vendorStartDate_input 结尾的所有元素.

关于javascript - 如何使用 jquery 禁用日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10297201/

相关文章:

javascript - 如何确定哪个元素收到了事件?

jquery - 按钮onclick刷新页面

jsf-2 - 对话框内的 Primefaces commandButton 不触发支持 bean 的方法

javascript - 语法荧光笔

javascript - 在最小化浏览器窗口的同时重新调整 Kendo 图表的大小?

javascript - YouTube iframe 返回 "Failed to load resource: Frame load interrupted"

javascript - 如何引用与 HTML 和 jQuery 一起使用的 XML 文件/数据?

javascript - 如何切换按钮以将标题更改为不同的颜色并返回原始颜色

java - 在 JSF 组件的 CSS 中链接图像

redirect - JSF - 从 @PostConstruct 重定向后保留 Faces 消息