[英]Skip to next <p:wizard> tab without validation
我正在使用<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
在此部分中不起作用。 p:commandButton上的onclick,oncomplete不会更改任何内容。
目标是当按下“跳过”按钮时,不应触发表单验证,但是我仍在尝试找出方法。
经过几个小时的测试,我证实了kolossus所说的是真的。 primefaces向导不支持组件的选择性处理,它始终会验证特定选项卡上的所有字段。
就我而言,我只检查必填字段,所以我所做的是删除了所有必填字段验证器,因此,当我单击“跳过”按钮时,它应该导航到下一个选项卡。 当我单击“下一步”按钮时,在onFlowListener事件内部手动验证所有必填字段。
像这样:
public String onFlowProcess(FlowEvent event) {
if (event.getOldStep().equals("tabAddress")) {
if (skipToNext) {
skipToNext = false;
return event.getNewStep();
}
if (StringUtils.isBlank(shippingAddress.getCountryCode())
|| StringUtils.isBlank(shippingAddress.getPostCode())
|| StringUtils.isBlank(shippingAddress.getState())
|| StringUtils.isBlank(shippingAddress.getAddress1())) {
facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, null, "ERROR Address")));
return event.getOldStep();
}
}
}
客户端API:
移至“ n”标签
onclick="PF('wiz').loadStep (PF('wiz').cfg.steps [n], true); "
从0到m以及n> o和n <mm =制表符数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.