【问题标题】:JSF - Focus component that failed validationJSF - 验证失败的焦点组件
【发布时间】:2011-12-15 12:24:18
【问题描述】:

我有一个使用 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" /> 

我想做的是万一验证失败(值为空),焦点返回到组件,强制用户输入一个值。这可能吗? 我也希望当用户单击提交按钮时;如果验证失败,则聚焦第一个未通过验证的组件。

谢谢,
达米安

【问题讨论】:

    标签: java jsf jsf-2 primefaces


    【解决方案1】:

    在客户端,可以使用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" />
    

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

    取决于焦点...如果您有两个 inputText 怎么办?你想只为第一个显示焦点吗? 你可以在这里看到一个演示:http://www.primefaces.org/showcase-labs/ui/pprAjaxStatusScript.jsf

    【讨论】:

    • 感谢@spauny,第一部分已经开始工作,我的问题是关于重点。 catagay civici 的回答是正确的做法。
    • @Damian 是啊,我忘了对焦,其实我从来没有用过……所以不用担心,毕竟他是primefaces的老板! :D
    猜你喜欢
    • 2011-08-12
    • 1970-01-01
    • 2011-04-17
    • 2014-10-18
    • 2011-10-30
    • 2013-02-27
    • 2010-09-16
    • 2013-10-19
    • 1970-01-01
    相关资源
    最近更新 更多