1

入力テキスト領域とコマンドボタン「送信」を含むprimefacesダイアログがあります。

ボタン「拒否」を含むフォームがあり、フォームはタブビュー内にあります。ユーザーが「拒否」ボタンをクリックすると、ユーザーが拒否の理由を入力するためのダイアログ「rejectDialog」を表示します。ユーザーがコメントを入力し、ダイアログの送信ボタン「submitButton」をクリックすると、Bean でアクション メソッドが呼び出され、コメントの値が更新されます。JavaScript メソッドを呼び出す oncomplete 属性があります。アクション メソッドが完了すると、javascript メソッドは実行されず、ダイアログ ボックスが閉じられます。アクションは正常に実行され、エラーは発生しません。oncomplete を onsuccess に置き換えてみましたが、それでも javascript メソッドは実行されません。

ダイアログ内で oncomplete で javascript が呼び出されない理由を知りたいですか?

また、oncomplete 属性にアラートだけを追加しようとしましたが、それでもアラートは実行されません。

コードは以下に添付されています。

XHTML ページ

<p:dialog id="rejectDialog" header="Enter Comments" 
              hideEffect="explode" showEffect="explode" 
              resizable="false" widgetVar="rejectDlg" 
              style="background: #bcbcbc !important;"
              >
            <h:panelGrid columns="1" cellpadding="0" cellspacing="2"
                         styleClass="commentsPanel"
                         id="dialogpanelgrid">
                <p:outputLabel for="rejectComments" value="Enter Comments *: "
                               style="font-weight: bold;">

                </p:outputLabel>
                <p:inputTextarea cols="40" rows="4" autoResize="false" 
                   id="rejectComments" styleClass="rejectCommentsCls"
                   value="#{requestDetailsMB.rejectCommentsDesc}"
                   style="background: lightgray !important; color:#000 !important;" 
                                 widgetVar="txtreject"
                                 >
                    <f:validator validatorId="commentsValidator"></f:validator>
                </p:inputTextarea>
         <h:outputLabel id="rejectCommentsMessage" class="rejectCommentsMsg" value="" 
                               style="color:red !important; font-weight: bold;">

                </h:outputLabel>
            </h:panelGrid>
            <p:commandButton id="submitButton" 
                             style="margin-top: 15px; float:right;" 
                             value="Submit"
                             onclick="return validate();"
                             action="#{requestDetailsMB.rejectRequest}"
                             oncomplete="performRejectAction();"
                             /> 
    </p:dialog>
4

1 に答える 1

0

onclickの場合に JavaScript を配置する前に、問題に遭遇しましたcommandButton。javascript は、primefaces の動作を上書きする可能性があります。これが、おそらくoncomplete実行されていない理由です。onstart代わりにイベントを使用することをお勧めします。

<p:commandButton id="submitButton" 
    style="margin-top: 15px; float:right;" 
    value="Submit"
    onstart="return validate();"
    action="#{requestDetailsMB.rejectRequest}"
    oncomplete="performRejectAction();" /> 
于 2013-02-22T18:42:08.807 に答える