我有一个selectOneMenu和一个InputText。当我选择selectOneMenu的其他选项时,我想更改InputText的readOnly="false"
属性。
这些是代码
<h:form>
<h:selectOneMenu id="customerCombo"
value="#{customer.selectedBank}"
required="true"
requiredMessage="Please select one">
<f:selectItem itemLabel="Seçiniz" noSelectionOption="true" />
<f:selectItems value="#{customer.banks}" />
<f:selectItem itemValue="Other" itemLabel="Other"/>
<f:validateRequired/>
</h:selectOneMenu>
<h:message for="customerCombo"/>
<br /><br />
<h:outputText value="other text" />
<h:inputText id="digerText" readonly="true"/>
<br /><br />
<h:commandButton value="submit" action="customerResult" />
</h:form>
答案 0 :(得分:1)
在@ViewScoped
支持bean中定义一个与readOnly状态对应的变量
private boolean readOnly;
//getter and setter
定义一个方法,用于切换readOnly
变量的状态。该方法将通过ajax
public void toggleReadOnly(){
if(selectedBank.equals("Other"){
readOnly = true;
}
}
将readOnly变量的值绑定到<h:inputText/>
<h:inputText id="digerText" readonly="#{bean.readOnly}"/>
bean
是(hehe)你的支持豆的名字
从下拉菜单中触发toggleReadOnly
方法
<h:selectOneMenu id="customerCombo"
value="#{customer.selectedBank}"
required="true"
requiredMessage="Please select one">
<f:ajax listener="#{bean.toggleReadOnly}" render="digerText"/>
</h:selectOneMenu>