在按钮提交已停用="#{}"

时间:2015-05-21 11:48:36

标签: jsf jsf-2.2

我的验证员似乎在我不再在现场时恢复到假,为什么会这样?我以为这是因为每次我模糊一个字段时都会产生一个新的请求,从而丢失了验证器的数据,但我不确定是不是这样。 我的视觉图标反映了字段的验证是否通过。但是,当我的一个验证测试通过提交按钮时,可用,而不是当所有这些都通过时。即使你可以在图片的底部看到条件的结果是错误的。这是奇怪的,因为它完全相同的条件逆转。 validation_fail

例如,在这里您可以看到绿色图标指示的每个字段验证都已通过(提交按钮可用,但只要1个字段测试通过就可以使用)。在提交按钮下面是不同验证器的值。

                <p:commandButton value="Submit" id="submit" action="#{subscribeUser.inscrireUser}"  icon="ui-icon-disk" 
                disabled="#{(!usernameValidator.ok  and !passwordValidator.ok and !emailValidator.ok)}" />      

以下是一些字段:

            <tr><td>
            <h:outputLabel for="username">#{registering.Username}: </h:outputLabel></td><td>
            <p:inputText id="username" value="#{subscribeUser.user.username}" 
                validator="#{usernameValidator.validate}">
                <f:passThroughAttribute name="required" value="true"/>
                <f:ajax event="blur" render="usernameCheck usernameMessage submit vals"></f:ajax>
            </p:inputText></td><td>
            <h:panelGroup id="usernameCheck">
                <h:graphicImage library="images/icons" name="failed_indicator.png" rendered="#{usernameValidator.isIndicatorVisible.usernameFailed}"></h:graphicImage>
                <h:graphicImage library="images/icons" name="success_indicator.png" rendered="#{usernameValidator.isIndicatorVisible.usernameSuccess}"></h:graphicImage>
            </h:panelGroup></td><td>
            <span class="error"><h:message id="usernameMessage" for="username"/></span></td>
            </tr>

            <tr><td>
            <h:outputLabel for="email">#{registering.Email}: </h:outputLabel></td><td>
            <p:inputText id="email" required="true" value="#{subscribeUser.user.email}" 
                validator="#{emailValidator.validate}"
                requiredMessage="#{registering.reqEmail}">
                <f:passThroughAttribute name="required" value="true"/>
                <f:passThroughAttribute name="type" value="email"/>
                <f:passThroughAttribute name="maxlength" value="100"/>
                <f:ajax event="blur" render="emailCheck emailMessage submit vals"></f:ajax>

            </p:inputText></td><td>
             <h:panelGroup id="emailCheck">
                <h:graphicImage library="images/icons" name="failed_indicator.png" rendered="#{emailValidator.isIndicatorVisible.emailFailed}"></h:graphicImage>
                <h:graphicImage library="images/icons" name="success_indicator.png" rendered="#{emailValidator.isIndicatorVisible.emailSuccess}"></h:graphicImage>
            </h:panelGroup> </td><td>
            <span class="error"><h:message id="emailMessage" for="email"/></span></td>
            </tr>

使用时:

<p:commandButton value="Submit" id="submit" action="#{subscribeUser.inscrireUser}"  icon="ui-icon-disk" 
                disabled="#{(!usernameValidator.ok  and !passwordValidator.ok and !emailValidator.ok)}" />  

<h:outputText id="vals" name="vals" value="#{usernameValidator.ok}  and #{passwordValidator.ok} and #{emailValidator.ok}
                    = #{usernameValidator.ok  and passwordValidator.ok and emailValidator.ok}"></h:outputText>

模糊字段时,会放置字段验证的正确值,但其他值会自动更改为false。为什么会这样?

0 个答案:

没有答案
相关问题