JSF - компонент Focus, который не прошел проверку - PullRequest
3 голосов
/ 15 декабря 2011

У меня есть приложение JSF 2.0, использующее библиотеку компонентов Primefaces 3.0M4. У меня есть следующий вход:

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

Что я хотел бы сделать, так это то, что в случае неудачи проверки (значение пусто) фокус возвращается к компоненту, заставляя пользователя ввести значение. Это возможно? Также я хотел бы, чтобы, когда пользователь нажимал кнопку отправки; если проверка не проходит там, фокусируется первый компонент, который не прошел проверку.

Спасибо,
Damian

1 Ответ

2 голосов
/ 15 декабря 2011

Возможно на стороне клиента, используя атрибуты required и requiredMessage.Пользователь не может отправить форму, и отображается сообщение об ошибке:

<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

...