2011-12-15 107 views
3

我有一个使用Primefaces 3.0M4组件库的JSF 2.0应用程序。我有以下输入:JSF - 验证失败的焦点组件

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

什么,我想要做的是,在情况下,验证失败(值为空),焦点返回到组件,强迫用户输入一个值。这可能吗? 另外我希望当用户点击提交按钮;如果验证在那里失败,则第一个未通过验证的组件将被重点关注。

谢谢,
达米安

回答

2

这是可能的,客户端,通过使用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

+0

谢谢@spauny第一部分已经工作,我的问题是关于焦点。 catagay civici的答案是正确的做法。 – Damian 2011-12-16 15:38:14