richfaces показывают modalPanel, если долгое время загрузки страницы, не показывая modalPanel, когда страница загружается быстро - PullRequest
1 голос
/ 05 апреля 2011

Я использую modalpanl, чтобы пользователь не нажимал кнопку «Отправить» несколько раз, как в следующем коде.однако, когда на той же странице есть проверка формы, она также выводит модальную панель.Поскольку валидация является очень быстрым процессом, модальная панель была выведена и очищена за очень короткое время, например 0,5 с.это выглядит как вспышка для пользователя, и это делает плохой пользовательский опыт.есть ли способ показать modalPanel, только когда загрузка страницы занимает более 1 секунды.

onclick = "Richfaces.showModalPanel ('InProgress');"oncomplete = "Richfaces.hideModalPanel ('InProgress');"

1 Ответ

1 голос
/ 05 апреля 2011

Похоже, вы хотите запретить многократную подачу формы. Вы можете просто отключить кнопку отправки, используя ее атрибут onclick. В процессе проверки формы, в случае каких-либо ошибок проверки, кнопка отправки должна быть включена обратно.

Когда метод действия кнопки отправки завершается, и если атрибут rendered кнопки отправки не зависит от какого-либо значения Mbean, вы можете просто включить обратно кнопку отправки, используя ее атрибут oncomplete. Если атрибут rendered кнопки отправки зависит от свойств некоторых MBean и есть вероятность, что эти свойства будут изменены в методе действия, то вам следует reRender кнопка отправки.

Например,

Если атрибут rendered кнопки отправки не зависит ни от какого значения Mbean

<a4j:commandButton id="submitBtn" value="Submit" action="#{MBean.action}" onclick="this.disabled=true" oncomplete="this.disabled=false"/>

Если атрибут rendered кнопки отправки зависит от некоторого значения Mbean

<a4j:commandButton id="submitBtn" value="Submit" action="#{MBean.action}" onclick="this.disabled=true" rendered="#{MBean.someValue}"  reRender="#{rich:clientId('submitBtn')}"/>

Я думаю, что этот подход является более простым, более простым для понимания и сопровождения, чем использование подхода ModalPanel для блокировки формы из нескольких представлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...