0

我的 jsf 页面中有 5 个输入文本。我想实现这个功能,如果在第一个 inputtext 中输入了一些文本,rest 4 应该被禁用。如果在剩余的 4 个输入文本中输入任何文本,则应禁用第一个输入文本。我对 jsf 很陌生,不知道该怎么做。任何人请帮忙。

4

1 回答 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 回答