1

这是我在向导中按下“下一步”按钮后检查验证是否失败的尝试。这是在 oncomplete 中完成的 - 目前我只是显示一个显示未定义值的 JS 警报消息。我不认为后端 bean 在这里是相关的,因为验证是通过 required=true 触发的 - 没有在 bean 中进行进一步检查。

当前行为:警报框显示“未定义”,然后显示验证错误消息“密码不能为空”

预期行为:警报框显示“真”,然后显示验证错误消息“密码不能为空”

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:c="http://java.sun.com/jsp/jstl/core"
      xmlns:fn="http://java.sun.com/jsp/jstl/functions"
      xmlns:f="http://java.sun.com/jsf/core">


<h:head>

</h:head>

<h:body>
    <h:form prependId="false">

        <p:dialog id="modalDialog" header="add user" widgetVar="userDialog" modal="true" width="640"
                  height="400" closable="true" appendToBody="true" visible="true">
            <p:growl id="growl" sticky="true" showDetail="true"/>
            <p:wizard widgetVar="wiz" effect="fade"
                      flowListener="#{userWizard.onFlowProcess}" showStepStatus="true" showNavBar="false" onback="progressBack();" >

                <p:tab id="personal" title="Personal" >
                    <p:messages severity="warn" showDetail="true" autoUpdate="true" redisplay="true" />
                    <p:messages id="dialog_msgs" showDetail="false" autoUpdate="true" redisplay="true"/>
                    <p:panel style="height:150px;" >
                        <h:panelGrid columnClasses="label" columns="6" cellpadding="5">
                            <p:column>
                                <h:outputText value="Password: " styleClass="label" />
                            </p:column>

                            <p:column>
                                <p:password value="${userWizard.user.password}" styleClass="content" required="true"
                                            requiredMessage="Password cannot be blank"/>
                            </p:column>

                            <p:column style="width: 50;">
                                <h:outputText value=" "/>
                            </p:column>
                        </h:panelGrid>
                        <h:panelGroup>

                        </h:panelGroup>
                    </p:panel>
                    <p:commandButton value="Previous"  disabled="true" readonly="true" />
                    <p:commandButton value="Next"  oncomplete="alert(args.validationFailed); wiz.next();"  update="dialog_msgs" ajax="true" process="@this" />
                </p:tab>
                <p:tab id="personal2" title="Personal">
                    Not relevant
                    <p:commandButton value="Submit" update="growl messages @form"
                                     actionListener="#{userWizard.save}"/>

                </p:tab>
            </p:wizard>
        </p:dialog>
    </h:form>
</h:body>

</html>
4

0 回答 0