【问题标题】:Ignore validation on commandButton press忽略命令按钮按下的验证
【发布时间】:2012-08-08 11:14:55
【问题描述】:

我有一个页面,我可以在其中编辑一些实体。该页面有两个命令按钮。一个是“返回”,一个是“保存”,而且在那个页面上我有带有输入字段的表单(idInputSubject)。有些是必需的,有些不是。

我怎样才能确保我们按下“返回”按钮(取消编辑并返回)验证将被忽略,现在不是这种情况。现在,当我按下“返回”或“保存”按钮时,如果我没有使用正确的值 (idInputSubject) 填写所需的字段,则会出现验证消息。

“返回”和“保存”按钮的形式相同:

<h:form id="idFormMeasureDetail" styleClass="bodyForm" prependId="false">
   ...
   <p:commandButton value="#{contentMB.msg.label_back.value}"
        action="#{chooseMeasureControllerMB.aSearch}"
        rendered="#{detailMeasureMB.navigation eq 0}" ajax="false"
        icon="ui-icon-arrowreturnthick-1-w"/>
   <p:commandButton value="#{contentMB.msg.button_save.value}" ajax="false" 
        icon="ui-icon-disk" actionListener="#{detailMeasureControllerMB.alApplyChanges}" 
                    title="#{contentMB.msg.tip_Apply.value}" />

   ...
   <p:inputTextarea id="idInputSubject" value="#{detailMeasureMB.measure.aufgabe}"
    readonly="#{!userSessionMB.supervisor and !detailMeasureMB.isCreator}"
    required="#{globalSessionMB.globalWebOptionsMap['MMRequiredSubject'].propvalue}"
            title="#{contentMB.msg.tip_Betreff.value}"
            autoResize="false" style="width:100%;" >
   </p:inputTextarea>
   <p:message id="inputSubjectMsg" for="idInputSubject" display="icon" />
   ...

</h:form>

选择MeasureControllerMB:

@ManagedBean(name = "chooseMeasureControllerMB")
@RequestScoped
public class ChooseMeasureControllerMB extends BaseMeasureControllerMB {
...
public String aSearch() {
            ...
    // navigate to target-page
    return "/pages/mm/showMeasuresList.xhtml?faces-redirect=true";
}
...
}

【问题讨论】:

    标签: jsf primefaces


    【解决方案1】:

    如果您想阻止/跳过某些按钮的验证,请点击使用

    immediate="true" 在该特定按钮上

    有关immediate="true" 的详细说明,请阅读following BalusC answer

    And here a nice diagram that shows how imemdiate="true works"

    【讨论】:

      【解决方案2】:

      简而言之,当您单击“返回”按钮时,您提交表单并验证数据。为防止这种情况发生,请将按钮置于另一种形式或使用 Java 脚本进行导航。

      一般来说,当您想取消操作时,您不想提交数据,因为它会被丢弃。使用一些客户端操作。我认为您也可以使用&lt;p:commandButton&gt;&lt;p:button&gt; 进行导航。这样表单也不会提交。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-01
        • 1970-01-01
        • 2015-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-28
        相关资源
        最近更新 更多