焦点丢失后使用ajax触发JSF验证

时间:2011-04-26 08:45:37

标签: ajax validation jsf

当组件使用ajax失去焦点而不是等待手动提交表单时,如何在输入组件上触发验证?

2 个答案:

答案 0 :(得分:16)

<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 tutorial with Eclipse and Tomcat - the viewfinetuning validation

答案 1 :(得分:3)

试试这段代码:

<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对其进行验证。如果用户然后移动到另一个输入组件,则将呈现ouputText组件。如果验证失败,您可以在那里显示消息。