当组件失去焦点时,如何使用ajax触发对输入组件的验证,而不是等待表单手动提交?
将<f:ajax event="blur">
放到UIInput
组件中,该组件将重新呈现与该组件相关的<h:message>
。
<h:inputText id="foo" value="#{bean.foo}" required="true">
<f:ajax event="blur" render="fooMessage" />
</h:inputText>
<h:message id="fooMessage" />
另请参阅JSF 2.0教程与Eclipse和Tomcat -视图和调优验证
试试下面的代码:
<h:inputText value="#{bean.value}" valueChangeListener="#{bean.validateValue}">
<f:ajax event="blur" render="valueError"/>
</h:inputText>
<h:outputText id="valueError" value="#{bean.valueErrorMessage}" style="color: red;" />
如果用户更改了输入组件中的值,您可以使用valueChangeListener对其进行验证。如果用户随后移动到另一个输入组件,则将呈现outputtext组件。如果验证失败,您可以在那里显示一条消息。