【问题标题】:Disable/Enable h:commandButton on validation fails/ is ok验证失败时禁用/启用 h:commandButton/没问题
【发布时间】:2013-07-29 14:08:26
【问题描述】:

我得到了一个带有验证器和命令按钮的文本框。当文本框的验证失败时,我想禁用命令按钮,否则应该启用它。我不想使用任何代码隐藏,因此它应该可以在 bean 中没有任何辅助属性的情况下工作。

那么如何根据验证器状态告诉命令按钮被禁用/启用?

  <h:outputLabel for="category" value="#{msg['category.create']}"/>
                    <h:inputText id="category" required="true"  label="#{msg['category.create']}" value="#{CreateCategoryBean.newCategory.name}" >
                        <f:validator validatorId="Get.Validator.CategoryValidator" />
                        <f:ajax event="keyup" render="categorymessage"  />
                    </h:inputText>

                    <h:messages for="category" id="categorymessage"/>

                    <h:commandButton id="submit" value="#{msg['default.create']}" action="#{CreateCategoryBean.CreateCategory()}"

【问题讨论】:

    标签: validation jsf-2 form-submit


    【解决方案1】:

    由于您已经拥有&lt;f:ajax event="keyup"&gt;,只需让它更新&lt;h:commandButton&gt;,然后您在其disabled 属性中检查&lt;h:inputText&gt;UIComponent#isValid() 是否不返回false

    <h:inputText binding="#{category}" ...>
        <f:ajax ... render="categoryMessage submit" />
    </h:inputText>
    
    <h:commandButton id="submit" ... disabled="#{not category.valid}" />
    

    不需要额外的 bean 属性。上面的代码是完整的。

    另见:

    【讨论】:

      猜你喜欢
      • 2016-08-15
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      • 2019-01-26
      • 1970-01-01
      • 2016-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多