我有一个使用Primefaces 3.0M4组件库的JSF 2.0应用程序。我有以下输入:

<p:inputText id="input" value="#{bean.value}" required="true">
      <p:ajax event="blur" update="msg" />
</p:inputText>
<p:message id="msg" for="input" />

我想做的是,如果验证失败(该值为空),则焦点将返回到该组件,从而迫使用户输入一个值。这可能吗?
当用户单击“提交”按钮时,我也想这样做;如果那里的验证失败,则将重点关注未通过验证的第一个组件。

谢谢,
达米安

最佳答案

在客户端,可以使用requiredrequiredMessage属性。用户无法提交表单,并显示错误消息:

<h:outputLabel for="firstname" value="Firstname: *" />
        <p:inputText id="firstname"
                value="#{personBean.firstname}"
                required="true" requiredMessage="You have to enter your name" label="Firstname">
            <f:validateLength minimum="2" />
        </p:inputText>
        <p:message for="firstname" />

如果不使用primefaces message属性,则可以使用requiredMessage,因为它会向您显示两条警告消息,这有点奇怪...

对于焦点,取决于...如果您有两个inputTexts,该怎么办?您是否只想显示第一个焦点?
您可以在此处查看演示:http://www.primefaces.org/showcase-labs/ui/pprAjaxStatusScript.jsf

10-04 22:43
查看更多