在输入文本中按下时如何禁用(只读)其他输入文本
How to disable ( readonly ) other inputtext when keypressed in inputtext
我有 <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
当用户开始输入前 3 个 <h:inputText>
之一时,其他应该被禁用。如果输入最后 2 个中的一个,则应禁用前 3 个。如果文本已删除(空),则启用所有字段。
(用户可以仅通过 MDM ID 或仅 Poslovni 合作伙伴 ID 或仅通过 JMBG 或同时通过 PIB 和 MBR 进行搜索,希望您理解)
我发现了类似的问题,但我的问题没有解决方案。
我找到了解决方案..
<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 并在更新属性中放置 space 分隔的要更新的组件 ID 列表和 disabled="#{not empty bean.property }"
我有 <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
当用户开始输入前 3 个 <h:inputText>
之一时,其他应该被禁用。如果输入最后 2 个中的一个,则应禁用前 3 个。如果文本已删除(空),则启用所有字段。
(用户可以仅通过 MDM ID 或仅 Poslovni 合作伙伴 ID 或仅通过 JMBG 或同时通过 PIB 和 MBR 进行搜索,希望您理解)
我发现了类似的问题,但我的问题没有解决方案。
我找到了解决方案..
<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 并在更新属性中放置 space 分隔的要更新的组件 ID 列表和 disabled="#{not empty bean.property }"