1

現在、JSF 2.0 と jquery で Web アプリケーションを実行しています。さらに、jquery ダイアログを追加しました。モデル ダイアログは、エラーなしで適切に開いています。ただし、ダイアログのajax入力値で送信しようとすると、サーバー側に投稿されません。

以下の入力テキストとボタンを参照して、値を送信してください。

入力:

<h:inputText id="routingNumber_1" required="true" class="routingNo"
    value="#{paymentInfoController.modelBankInfo.routingNumber}"
    valueChangeListener="#{paymentInfoController.getBankByRoutingNumber}">
</h:inputText>

ボタン:

<h:commandLink styleClass="fll btn2 btnOff mr savepannextbutton" 
    id="savepannextbutton" style=" align:left;height: 40px; width: 70px;"
    value="Confirm" title="Confirm">
    <f:attribute name="bank" 
        value="#{paymentInfoController.modelBankInfo.routingNumber}">
    </f:attribute>
    <f:ajax execute="@form" onevent="addBankshowSuccessMessage" event="click"
        render=":formPaymentInformation:paymentInformationDataTable"
        listener="#{paymentInfoController.addBank}">
    </f:ajax>
</h:commandLink>
4

1 に答える 1

1

JS / CSSモーダルダイアログは、設計上、通常は本体の端に再配置されます(ブラウザー固有のレイアウト/プレゼンテーション/ zindexの問題を防ぐため)。したがって、ダイアログを表すHTML要素をの中に配置した場合<h:form>、ダイアログはHTMLの外に配置される<form>ことになり、サーバーに何も送信できなくなります。

<h:form>がダイアログ内に配置されていることを確認する必要があります。


具体的な問題とは関係なく、すべてのJSF + jQueryの問題を自作/再発明するのではなく、内部でjQueryUIを使用しているJSFコンポーネントライブラリを検討することを検討してくださいたとえば、PrimeFacesには、この目的のためのオールインワンソリューションとしての<p:dialog>コンポーネントがあります。

于 2012-09-20T16:26:13.257 に答える