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
当用户开始输入前 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 并在更新属性中放置您要更新的组件 id 的空格分隔列表和disabled="#{not empty bean.property }"
推荐阅读
- java - Jacoco 报告没有考虑在 Maven 中进行 Cucumber 测试
- javascript - 有没有人类用户不能使用网站的方法?
- c# - API认证和授权
- angular - 角。MatSelectionListChange 上事件的值未定义
- c++ - 结构成员作为具有未指定模板参数的函数模板指针
- excel - ByRef 传递数组,下标超出范围
- java - 如何解决 Spring Boot 中的 ConstraintViolationException
- jquery - JSON.parse() 返回 JSON 输入的意外结束
- mongodb - 带有嵌入式文档数组的 MongoDB $cond
- java - Java:getClass().getResource().toURI() 与 getClass().getResourceAsStream()