Hi all. Have a quit strange behaviour of f:ajax.
Scenario: registration form with 2 step registration 1. user fill base info (name, email, phone) and send it - email sending to user - user confirm his email - by clicking on link he comes to the same page but now he have many fields to fill 2. user fill all fields, but f:ajax not working (for validation)
structure : page have to panels, in on of it specific ui component situated (all fields for use at step 2)
....
Registration Page
        <h:form>
            <f:ajax render="@form" execute="registerPanel doolop donePanel">
                <h:panelGrid id="registerPanel" columns="3" rendered="#{partnerTempRegisration.processToTemp}">
.....
  <h:panelGroup id="doolop" rendered="#{partnerTempRegisration.submited}">
                    Registrated!
                </h:panelGroup>
 </f:ajax>
<h:panelGroup id="donePanel" rendered="#{partnerTempRegisration.forRegistration}" >
                <h:panelGroup rendered="#{partnerTempRegisration.aboutToRegistrate}">
                    Continue registration!
                    <hydra:pregistration />
                </h:panelGroup>
                <h:panelGroup rendered="#{!partnerTempRegisration.aboutToRegistrate}">
                    Could not be registrated!
                </h:panelGroup>
            </h:panelGroup>
partnerTempRegisration.processToTemp - check if link hase parameter hash (registration.xhtml?hash=XXXX)
ui component (hydra:pregistration):
<cc:implementation>
<f:ajax render="@form" execute="register_official register_trade register_contact register_advertising">
<h:form >
<p:panel id="register_official" header="#{i18n.register_official_title}" styleClass="panel_text" >
    <f:validateRequired >
        #{i18n.register_official_full_name_enterprise}
        <h:panelGrid columns="2" styleClass="register_grid">
            <h:outputText value="#{i18n.register_input_ru_ru}" styleClass="register_cell"/>
            <h:panelGroup styleClass="register_cell" layout="block">
                <h:inputText id="official_full_name_ru_ru" styleClass="register_fields"
                             requiredMessage="#{i18n.register_required}"
                             value="#{partnerRegistration.official_full_name_ru_ru}"/>
                <h:message for="official_full_name_ru_ru" errorClass="error_message"/>
            </h:panelGroup>
.....
    </f:validateRequired>
</p:panel>
...
<h:commandButton action="#{partnerRegistration.submitRegistration}" value="submit"  disabled="#{!partnerRegistration.filled}"/>
</h:form>
</f:ajax>
</cc:implementation>
Problem : ajax not woking in a case of step 2, but if I am put hydra:pregistration in the place where it would be rendered by default - it works as expected.
Q1: is this is some kind of jsf 2.0 life cycle rules? Q2: is there is some design for this situation (on the same page, I know that i can just put it on another)? Q3: what you could propose to do in this situation ?
Thank you!