h:从类中启用/禁用inputtext

时间:2013-08-28 06:28:56

标签: jsf

根据我的要求,有一个h:inputtext来查找用户。如果找到用户,则在相应的h:inputtext中填充名字,姓氏和电子邮件,该文件被禁用。但是如果没有找到输入文本应该被启用并且可以填充新的细节。

<h:inputText value="#{countryBean.usersDetailsDTO.eid}" id="eid" required="true"       requiredMessage="Enter EID">

            <f:ajax></f:ajax>
        </h:inputText><h:message styleClass="msgStyle4" id="msgEid" for="eid"/>
    </div>
    <h:commandButton  styleClass="search_btn"   immediate="true">
        <f:ajax listener="#{countryBean.getUserDetail}" render="empFName empLName empEmail" event="click" execute="@this" />
    </h:commandButton>
    <div class="clear">&nbsp;</div>

    <div class="form-field" style="margin-left:222px;">
        first Name  <h:inputText value="#{countryBean.usersDetailsDTO.firstName}" id="empFName" required="true" requiredMessage="Enter First Name">
        <f:validator validatorId="nameValidation" />
        </h:inputText><h:message styleClass="msgStyle4" id="msgfn" for="empFName"/>
    </div>
    <div class="clear"></div>
    <div class="form-field" style="margin-left:10px;">
        last name  <h:inputText value="#{countryBean.usersDetailsDTO.lastName}" id="empLName" required="true" requiredMessage="Enter Last Name">
        <f:validator validatorId="nameValidation" />
        </h:inputText><h:message styleClass="msgStyle4"  id="msgln" for="empLName"/>
    </div><div class="clear"></div>
    <div class="form-field" style="margin-left:10px;">
        email<h:inputText value="#{countryBean.usersDetailsDTO.email}" id="empEmail" required="true" requiredMessage="Enter Email Address">
        <f:validator validatorId="emailValidation" />
        </h:inputText><h:message styleClass="msgStyle4"  id="msgEmail" for="empEmail"/>
    </div>

2 个答案:

答案 0 :(得分:4)

您可以随时使用disabled属性和JSF EL将布尔值传递给disabled属性。
例如,在您的情况下如果要预先填充第一个名称,则要禁用任何h:inputText

<h:inputText value="#{countryBean.usersDetailsDTO.email}" id="empEmail"     
required="true" requiredMessage="Enter Email Address"      
disabled="#{not(empty countryBean.usersDetailsDTO.firstName)}">

如果Email已预先填充,则上述代码将停用disabled输入文字firstname

答案 1 :(得分:1)

您可以通过两种方式处理此问题:

1)将inputText的disable-tag设置为BackingBean方法,如下所示:

<h:inputText ... disabled="#{countryBean.found}" ... />

2)在第一个inputText上添加valueChangeListener,如果它有文本,则应禁用其他文本。