我的jsf页面中有5个inputtext。我想实现这个功能,如果在第一个输入文本中输入了一些文本,则应禁用其余4。如果在剩余的4个输入文件中的任何一个中输入任何文本,则应该去掉第一个输入文本。我对jsf很新,不知道怎么做。有人请帮忙。
答案 0 :(得分: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>