0

AJAX を介して条件付きで他のページを含めるページがあります。含まれている 1 つのページで、別の ajax 呼び出しを実行したいと思います。

私の最初のページ:

<ui:composition template="../../templates/template.xhtml">
<ui:define name="title">
    Pay
</ui:define>
<ui:define name="content">

    <h:form>
        <div id="loginDiv">
            <div class="homeDiv" style="text-align: left;">
                <h:form>
                    <h:outputText value="#{strings.paymentMainSpeech} " />
                    <ul id="grileList">
                        <li><a href="http://www.platiprinsms.ro">#{strings.payThroughSMS}</a></li>
                        <li><a href="http://www.mobilpay.ro">#{strings.payThroughCard}</a></li>
                        <li><a href="http://www.paypal.com">#{strings.payThroughPayPal}</a></li>
                    </ul>
                    <h:outputText value="#{strings.bellowYouHavePaymentOptions}" />
                </h:form>
            </div>
            <h:selectOneRadio value="#{payment.option}" immediate="true">
                <f:selectItem itemValue="#{strings.payThroughSMS}"
                    itemLabel="#{strings.payThroughSMS}" />
                <f:selectItem itemValue="#{strings.payThroughCard}"
                    itemLabel="#{strings.payThroughCard}" />
                <f:selectItem itemValue="#{strings.payThroughPayPal}"
                    itemLabel="#{strings.payThroughPayPal}" />
                <f:ajax event="change" listener="#{payment.changeListener()}"
                    render="payment" />
            </h:selectOneRadio>
        </div>

        <h:panelGroup id="payment">

            <!-- PayPal -->
            <h:panelGroup rendered="#{payment.option == 'PayPal'}">
                <ui:include src="../payments/paypal/paypal.xhtml" />
            </h:panelGroup>

            <!-- CARD -->
            <h:panelGroup rendered="#{payment.option == 'Card'}">
                <ui:include src="../payments/card/mobilPay.xhtml" />
            </h:panelGroup>
        </h:panelGroup>

    </h:form>


</ui:define>

ajaxリスナーを介して含めたいページをラジオボタンから選択します。それはうまくいきます。含まれている 1 つのページ (mobilPay.xhtml 上)

<ui:composition>
<ui:define name="title">
    Pay Card Mobil Pay
</ui:define>
<div id="loginDiv">

    <h:panelGroup id="next">

        <h:panelGroup rendered="#{not mobilPayInitBean.forward}">

            <h:outputText value="#{strings.paymentSpeech} " />
            <h:outputText value="#{strings.paymentSpeech} " />

            <h:outputText value=" #{strings.paymentSpeech2}" />
            <br />
            <br />
            <h:form>
                <h:selectOneMenu value="#{mobilPayInitBean.options}">
                    <f:selectItem itemValue="five" itemLabel="#{strings.fiveEuro}" />
                    <f:selectItem itemValue="seven" itemLabel="#{strings.sevenEuro}" />
                    <f:selectItem itemValue="ten" itemLabel="#{strings.tenEuro}" />
                </h:selectOneMenu>
                <br />
                <br />
                <f:ajax render="next">
                    <h:commandButton value="#{strings.nextStep}"
                        action="#{mobilPayInitBean.nextStep()}"
                        rendered="#{not mobilPayInitBean.forward}" />
                </f:ajax>       
            </h:form>
        </h:panelGroup>

        <h:panelGroup rendered="#{mobilPayInitBean.forward}">
            <div id="loginDiv">


                <form name="frmPaymentRedirect" method="post"
                    action="#{mobilPayInitBean.paymentURL}">
                    <input type="hidden" name="env_key"
                        value="#{mobilPayInitBean.paymentURL}" /> <input type="hidden"
                        name="data" value="#{mobilPayInitBean.paymentURL}" />

                    <p>
                        If not reditect in 5 seconds <input type="image"
                            src="images/12792_mobilpay-96x30.gif" />
                    </p>
                </form>

            </div>
            <script type="text/javascript" language="javascript">
                window.setTimeout(document.frmPaymentRedirect.submit(), 3000);
            </script>
        </h:panelGroup>

    </h:panelGroup>
</div>

選択メニューから項目を選択してコマンド ボタンをクリックし、selectonemenu 全体とコマンド ボタンを非表示にし、最後のフォーム (name="frmPaymentRedirect") を表示したい。

今問題:

mobilPay.xhtml ページとラジオボタンのあるページ全体を含めると、mobilPay.xhtml ページが表示されますが、コマンド ボタンをクリックすると、ホール mobilPay.xhtml が消え、ラジオ ボタンの選択も消えます。

お時間をいただきありがとうございます。

4

1 に答える 1

0

それはネストされたフォームでした!!! マスター テンプレート -> 子テンプレート -> インクルード ページを使用しました。子テンプレートにはフォームがあり、フォーム内にページを挿入し、挿入されたページには別のフォームのセットがありました。

当たり前のことを指摘してくれてありがとう!!!

于 2013-07-10T18:31:31.597 に答える