2014-10-20 2 views
0

Мне нужны две различные проверки, используемые в этом случае. Первый должен отображаться, если значение не выбрано и форма отправлена.Объединение проверки ajax с валидацией формы

Второе должно быть подтверждено немедленно, когда пользователь выбирает «да» для ответа. Пока что запрос ajax работает нормально, но когда значение не выбрано, я получаю предупреждение: (Есть некоторые необработанные FacesMessages, это означает, что не каждый FacesMessage имел возможность визуализироваться. Эти необработанные FacesMessages: ...)

Я думаю, что существует проблема с поиском различных сообщений из p: selectOneRadio-Tag в том же сообщении p :. Может ли кто-нибудь проверить мои мысли? Какие еще возможные решения объединяют эти два разных типа валидации? Вот код:

<h:form id="formHealtData"> 
    <p:panelGrid columns="1" 
       layout="grid" 
       cellpadding="5"> 
     <h:outputLabel for="hQuestion1" 
         value="FirstQuestion" /> 
     <p:selectOneRadio id="hQuestion1" 
          value="#{applicationData.hQuestion1}" 
          required="true" 
          requiredMessage="Please answer the question!"> 
      <f:selectItem itemValue="#{true}" itemLabel="Yes" /> 
      <f:selectItem itemValue="#{false}" itemLabel="No" /> 
      <f:validator for="hQuestion1" 
         validatorId="trueQuestionValidator" /> 
      <p:ajax event="change" update="messQ1" /> 
     </p:selectOneRadio> 
     <p:message id="messQ1" 
        for="hQuestion1" /> 
    </p:panelGrid> 
    <p:commandButton id="next" 
        value="Next" 
        action="paymentdata"> 
    </p:commandButton> 
</h:form> 

ответ

0

PF p:commandButton является Аяксом по умолчанию, это является причиной ваших проблем. Если вам нужен обычный пост, добавьте в команду команду ajax="false" и должны работать. Если вам нужен ajax, то добавьте update="yourpanelid" и process="yourpanelid" к вашим элементам.

Смежные вопросы