【发布时间】:2012-09-15 10:52:03
【问题描述】:
我在其中使用了<p:dataTable>,我使用了html <table>。我想在 <h:selectOneMenu> 更改事件上禁用/只读 PrimeFaces <p:inputText>。
我使用了 JavaScript,但它无法使用它。
<script type="text/javascript">
function change(val)
{
//alert(val);
if(val=="Check")
{
document.getElementById('bankName').readonly=false;
document.getElementById('receiptNo').readonly=true;
}
if(val=="Cash")
{
forms.elements["mainForm:chkNo"].readonly=true;
document.getElementById('chkNo').readonly=true;
document.getElementById('bankName').readonly=true;
document.getElementById('receiptNo').readonly=false;
}
}
</script>
JSF 代码
<h:column>
<p:dataTable id="paymentHistoryDataTable" var="due"
>
<p:column>
.......
<table id="paymentProcess">
<tr>
<td style="width: 80px;">
<h:selectOneMenu value="#{adminActionController.tempBean.selectType}" id="type" onchange="change(this.value);">
<f:selectItem itemLabel="Check" itemValue="Check"/>
<f:selectItem itemLabel="Cash" itemValue="Cash"/>
</h:selectOneMenu>
</td>
</tr>
<tr id="check">
<td></td>
<td></td>
<td style="width: 90px;" id="lblChk">
<label> <h:outputText value="Check/DD Number:" /> </label>
</td>
<td style="width: 90px;">
<h:inputText id="chkNo" value="#{adminActionController.tempBean.checkNumber}" immediate="true"
required="false" validatorMessage="insert Check/DD number">
</h:inputText>
</td>
....... 我想在 js 中访问 id="chkNo" 来禁用它..
【问题讨论】:
-
JavaScript 是区分大小写的,你应该总是使用“readOnly”,使用“readonly”是错误的。
-
我用过,还是没有禁用
-
请提供完整的HTML代码,我也不认为使用“forms.elements”是正确的。
-
如果您对 JSF 1.2 没有任何疑问,请不要使用
[jsf-1.2]标签。如果您根本不使用 RichFaces 的<a4j:xxx>组件,请不要使用[ajax4jsf]标签。如果问题与 CSS 无关,请不要使用[css]标签。
标签: javascript jsf jsf-2 primefaces