【发布时间】:2013-01-08 01:43:09
【问题描述】:
我正在使用带有多个标签的<p:wizard>。一些选项卡包含需要验证的输入,例如信用卡号。但是可以跳过整个选项卡。如何跳到下一个标签?
我正在考虑 2 个实现,但我不确定如何:
-
添加一个跳过按钮,无需验证当前选项卡即可转到下一个选项卡。
<p:commandButton process="@this" immediate="true" onclick="wiz.next();" value="#{msgs['action.skip']}"></p:commandButton>
向导。
<p:wizard widgetVar="wiz" flowListener="#{accountActivationController.onFlowProcess}" nextLabel="#{msgs['action.next']}" backLabel="#{msgs['action.back']}">
<p:tab id="tabProfile">
//...
</p:tab>
<p:tab id="tabAddress">
<p:panel>
<p:inputText id="shippingZipCode_OTHERS" value="#{accountActivationController.shippingAddress.postCode}">
</p:inputText>
<p:message for="shippingZipCode_OTHERS" />
<p:messages id="globalAddress" showDetail="true">
</p:messages>
<f:facet name="footer">
<div class="buttons-set">
<p:commandButton process="@this" value="#{msgs['action.skip']}" oncomplete="wiz.next();">
</p:commandButton>
</div>
</f:facet>
</p:panel>
</p:tab>
<p:tab id="tabSchool">
//....
<p:commandButton action="#{bean.submit} value="Submit" />
</p:tab>
</p:wizard>
似乎process 在这部分不起作用。 onclick, oncomplete on p:commandButton 不会改变任何东西。
目标是当按下跳过按钮时,不应该触发表单验证,但我仍在尝试弄清楚如何做到这一点。
- 添加一个“跳过”复选框,这将禁用该特定选项卡上的验证。
【问题讨论】:
-
第一通常是要走的路。因此,为该代码添加更多上下文,让我们看看它为什么会失败
-
我已经对此进行了广泛的测试,似乎 PF 向导不支持选择性处理组件,这可以解释为什么他们没有在演示中使用它,而是使用“跳过”选择解决方法
标签: validation jsf jsf-2 primefaces wizard