私は<p:dataTable>
html を使用した中で使用しています<table>
。変更イベントでPrimeFaces<p:inputText>
を無効化/読み取り専用にしたい。<h:selectOneMenu>
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" にアクセスして無効にしたい..