我有一个表单,在单击复选框之前需要禁用某些字段。对于 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;
}
jQuery 调用 onchange 事件:
jQuery('.countryCheckBoxId').change(function()
{
enableCountryFilter();
});
通过调查 firebug 中的 Primefaces 元素,我可以看到 id“datePicker”仅充当“span”id,而 HTML 输入字段的实际 id 是“datePicker_input”。因此,我尝试使用“datePicker_input”在javascript中使用“datePicker”作为ID。这会启用该字段,但显示实际日历的 jQuery 事件不起作用。
似乎日历也是通过 jquery 事件调用的。在这个 jquery-event 中,您可以看到默认禁用设置为 true。我认为这就是问题所在,我不能将那部分设置为假。