2013-07-22 2 views
0

после изучения Интернета в течение нескольких дней проблема все еще существует. Интересно, может ли кто-нибудь помочь мне, пожалуйста.rich: сообщение отключает commandButton после первого использования

Форма внешнего Войти отображается оверлей JQuery http://jquerytools.org/demos/overlay/external.html

Имя пользователя и пароль запрашивается через форму. rich: сообщения должны отображаться с ошибками, если это необходимо после нажатия кнопки отправки. Это работает только один раз. Без rich: сообщение submit работает много раз. Что я делаю неправильно? Некоторый код:

Исходный код overlay_login.xhtml

<ui:composition xmlns="http://www.w3.org/1999/xhtml"  
<div id="overlay-content"> 
    <h1>Anmelden</h1> 


    <h:form id="login_form"> 

     <h:outputLabel value="#{msg['login.mainMailOrName']}" /> 
     <div id="overlay-panel"> 
      <h:inputText id="mainMailOrName" value="#{login.mainMailOrName}" 
       required="true" requiredMessage="#{msg['general.fieldRequired']}" 
       size="30" /> 
      <rich:message for="mainMailOrName" /> 
     </div> 
     <h:outputLabel value="#{msg['general.password']}" /> 
     <div> 
      <h:inputSecret id="password" value="#{login.password}" size="30" 
       required="true" requiredMessage="#{msg['general.fieldRequired']}" 
       validator="#{login.validPasswordValidator}" 
       validatorMessage="#{msg['login.loginFailed']}" /> 
      <rich:message for="password" style="color:#aa0000;" /> 
     </div> 
     <div> 
      <a4j:commandButton image="images/login_button.png" oncomplete="if(#{!facesContext.validationFailed}) $('a[rel]').overlay().close(); return false;" /> 
     </div> 

    </h:form> 

+0

отключен или не реагирует на клики? Вы можете использовать '', чтобы узнать, что происходит с последним. – Makhiel

+0

после тестирования с , я бы сказал, что кнопка не отвечает, потому что debug говорит: аналогичный запрос в настоящее время находится в очереди – Pek

+0

, но что это значит и как предотвратить очередь? – Pek

ответ

0

Проблема решается с помощью бей <h:message> вместо <rich:message>

<a4j:outputPanel ajaxRendered="true"> 
<!-- <rich:message for="mainMailOrName" style="color:#aa0000;" /--> 
    <h:messages for="mainMailOrName" style="color:#aa0000;" /> 
</a4j:outputPanel> 
Смежные вопросы