在输入文本中按下键时如何禁用(只读)其他输入文本

时间:2019-08-02 09:20:53

标签: jsf

我有<h:form>,看起来像这样:

            <h:form>
                <h:outputLabel>MDM ID:</h:outputLabel>
                <h:inputText id="searchIdMaster" value="#{tdetail.id_master}"></h:inputText>

                <h:outputLabel>Poslovni partner id:</h:outputLabel>
                <h:inputText id="searchPoslovniPartnerId"  value="#{tdetail.poslovni_partner_id}"></h:inputText>

                <h:outputLabel>JMBG:</h:outputLabel>
                <h:inputText id="searchJMBG" value="#{tdetail.jmbg}"></h:inputText>

                <h:outputLabel>PIB:</h:outputLabel>
                <h:inputText id="searchPIB" value="#{tdetail.pib}"></h:inputText>

                <h:outputLabel>MBR:</h:outputLabel>
                <h:inputText id="searchMBR" value="#{tdetail.mbr}"></h:inputText>

                <h:commandButton value="Search " action="#{tdetail.search()}">
                    <f:ajax execute="searchIdMaster searchPoslovniPartnerId searchJMBG searchPIB searchMBR"  render="outputIdMaster outputPoslovniPartnerId outputJMBG outputPIB outputMBR"></f:ajax>
                </h:commandButton>
                <h2>
                    <h:outputLabel>MDM ID:</h:outputLabel>
                    <h:outputText id="outputIdMaster" value="#{tdetail.id_master}"></h:outputText>
                    <br/>
                    <h:outputLabel>Poslovni partner id:</h:outputLabel>
                    <h:outputText id="outputPoslovniPartnerId" value="#{tdetail.poslovni_partner_id}"></h:outputText>
                    <br/>
                    <h:outputLabel>JMBG:</h:outputLabel>
                    <h:outputText id="outputJMBG" value="#{tdetail.jmbg}"></h:outputText>
                    <br/>
                    <h:outputLabel>PIB:</h:outputLabel>
                    <h:outputText id="outputPIB" value="#{tdetail.pib}"></h:outputText>
                    <br/>
                    <h:outputLabel>MBR:</h:outputLabel>
                    <h:outputText id="outputMBR" value="#{tdetail.mbr}"></h:outputText>
                </h2>
            </h:form>

这里有一张图片供您更好地理解: form

当用户开始输入前三个<h:inputText>中的一个时,应禁用另一个。如果键入后2个之一,则只能禁用前3个。如果删除了文本(空白),请启用所有字段。

(用户只能按MDM ID或仅Poslovni合作伙伴ID或JMBG或PIB和MBR进行搜索,希望您能理解

我找到了类似的问题,但是我的问题没有解决办法。

1 个答案:

答案 0 :(得分:0)

我找到了解决方法。

                <h:outputLabel>MDM ID:</h:outputLabel>
                <p:inputText id="searchIdMaster" value="#{tdetail.id_master}">
                    <p:ajax event="keyup" update="searchJMBG searchPoslovniPartnerId" />
                </p:inputText>

                <h:outputLabel>Poslovni partner id:</h:outputLabel>
                <p:inputText id="searchPoslovniPartnerId"  value="#{tdetail.poslovni_partner_id}" disabled="#{not empty tdetail.id_master}"></p:inputText>

                <h:outputLabel>JMBG:</h:outputLabel>
                <p:inputText id="searchJMBG" value="#{tdetail.jmbg}" disabled="#{not empty tdetail.id_master}"></p:inputText>

使用ajax,并在update属性中以空格分隔要更新的组件ID列表,然后disabled="#{not empty bean.property }"