【发布时间】:2010-09-27 07:09:06
【问题描述】:
我有一个表单,在单击复选框之前需要禁用某些字段。对于 JSF 元素都工作正常。问题出在 primeface 元素上。
对于像下拉列表这样的 JSF 元素,我这样做:
<h:selectOneMenu value="countryValue" disabled="true" id="countryId">
<f:selectItems value="countries" />
</h:selectOneMenu>
对于 Primefaces-elements,一个像这样的日历:
<p:calendar disabled="true" id="datePicker" value="dateValue"
pattern="yyyy-MM-dd" startWeekday="1"
timeZone="GMT">
</p:calendar>
我用来在事件中启用这些元素的 JavaScript 很简单:
function enableLocationUpdateFilter()
{
document.getElementById('form:datePicker').disabled = false;
}
调用onchange事件的jQuery:
jQuery('.countryCheckBoxId').change(function()
{
enableCountryFilter();
});
通过调查 firebug 中的 Primefaces 元素,我可以看到 id“datePicker”仅充当“span”id,而 HTML 输入字段的实际 id 是“datePicker_input”。因此,我尝试使用“datePicker_input”在javascript中使用“datePicker”作为ID。这将启用该字段,但 jQuery 事件调出实际日历不起作用。
日历似乎也是通过 jquery-event 调用的。在这个 jquery-event 中,您可以看到默认禁用设置为 true。我认为这就是问题所在,我不能将那部分设置为 false。
【问题讨论】:
标签: javascript jsf primefaces