【问题标题】:How to disable ( readonly ) other inputtext when keypressed in inputtext在输入文本中按下时如何禁用(只读)其他输入文本
【发布时间】:2019-08-02 09:20:53
【问题描述】:

我有<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 个&lt;h:inputText&gt; 之一时,其他应该被禁用。如果输入最后 2 个中的一个,则应禁用前 3 个。如果删除文本(空)启用所有字段。

(用户可以仅通过 MDM ID 或 Poslovni 合作伙伴 ID 或 JMBG 或 PIB 和 MBR 搜索,希望您理解)

我发现了类似的问题,但我的问题没有解决方案。

【问题讨论】:

  • 到目前为止你尝试了什么?你的问题是什么?
  • 什么都没试过.. 我不知道该怎么做,我需要帮助

标签: jsf


【解决方案1】:

我找到了解决办法..

                <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 }"

【讨论】:

    猜你喜欢
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 2020-05-12
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多