Проверка формы для rich:togglePanel

В моем приложении я создал мастера. Кажется, что я не могу переключать панели, потому что проверка не проходит на неотображаемой панели.

Мастер имеет такой макет:

<rich:modalPanel>
    <f:facet name="header">
        <h:outputText value="#{messages['motivation.title']}" />
    </f:facet>
    <h:messages />
    <rich:togglePanel id="motivationTogglePanel" switchType="ajax" initialState="wiz1" rendered="#{motivationController.enabled}">
        <f:facet name="wiz1">
            <f:subview id="wiz1sub"> 
                <rich:toggleControl value="next" switchToState="wiz2"></rich:toggleControl>
            </f:subview>
        </f:facet>
        <f:facet name="wiz2">
            <f:subview id="wiz2sub"> 
                <h:selectManyCheckbox id="checkBoxList1" required="true" value="#{controller.selectedValue}" layout="pageDirection">
                    <f:selectItems value="#{controller.options}"></f:selectItems>
                </h:selectManyCheckbox>
            </f:subview>
        </f:facet>   
</rich:modalPanel>

ModalPanel показывает правильно, начиная с панели wiz1. Теперь, когда пользователь нажимает toggleControl, ничего не происходит. Если я удаляю обязательное поле из компонента, переключение работает.

Как я могу сделать правильную проверку только отображаемых компонентов?

2 ответа

Решение

Я заменил togglePanel обычными панелями и изменил правильную панель, используя свойство контроллера.

Чтобы решить эту проблему, замените ваше f:subview на a4j:region. Это решит проблему, так как регионы ограничивают обработку на стороне сервера (включая проверку).

Другие вопросы по тегам