我的 jsf 页面中有 5 个输入文本。我想实现这个功能,如果在第一个 inputtext 中输入了一些文本,rest 4 应该被禁用。如果在剩余的 4 个输入文本中输入任何文本,则应禁用第一个输入文本。我对 jsf 很陌生,不知道该怎么做。任何人请帮忙。
问问题
602 次
1 回答
0
在 JSF 2 中,您可以这样做。
<h:inputText id="inputOne" value="#{bean.value1}" disabled="#{not empty bean.value2}">
<f:ajax event="keyup" render="inputTwo"/>
</h:inputText>
<h:inputText id="inputTwo" value="#{bean.value2}" disabled="#{not empty bean.value1}">
<f:ajax event="keyup" render="inputOne"/>
</h:inputText>
如果你有很多字段,最好引入方法#{bean}
来以更简单的方式执行所有检查,而不是#{not empty bean.value1 and not empty bean.value2 and not empty bean.value3}
如果有许多应该禁用的分组输入,您可以在标签render
属性中将它们以空格分隔,或者将它们分组并呈现整个组。<f:ajax>
<h:panelGroup/>
<h:inputText id="inputOne" value="#{bean.value1}" disabled="#{not empty bean.value2 and not empty bean.value3 and not empty bean.value4}">
<f:ajax event="keyup" render="inputs"/>
</h:inputText>
<h:panelGroup id="inputs">
<h:inputText value="#{bean.value2}" disabled="#{not empty bean.value1}">
<f:ajax event="keyup" render="inputOne"/>
</h:inputText>
<h:inputText value="#{bean.value3}" disabled="#{not empty bean.value1}">
<f:ajax event="keyup" render="inputOne"/>
</h:inputText>
<h:inputText value="#{bean.value4}" disabled="#{not empty bean.value1}">
<f:ajax event="keyup" render="inputOne"/>
</h:inputText>
</h:panelGroup>
于 2013-07-04T08:49:10.023 回答