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