客户端回调未从primefaces对话框调用

时间:2013-02-22 08:08:56

标签: primefaces dialog

我有一个primefaces对话框,其中包含一个输入文本区域和一个命令按钮“提交”。

我有一个包含“拒绝”按钮的表单,表单在Tabview中。当用户点击“拒绝”按钮时,我会显示对话框“rejectDialog”,供用户输入拒绝原因。一旦用户输入注释并在对话框中单击“提交按钮”“submitButton”,就会在bean中调用一个操作方法来更新注释值。我有一个调用javascript方法的oncomplete属性。动作方法完成后,永远不会执行javascript方法并关闭对话框。该操作成功执行,我没有收到任何错误。我也尝试用onsuccess替换oncomplete,但仍然没有执行javascript方法。

我想知道为什么javascript永远不会在对话框中的oncomplete中被调用?

我还尝试在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>

1 个答案:

答案 0 :(得分:0)

我在将javascript放入onclick的{​​{1}}事件之前遇到了问题。 javascript可以覆盖primefaces的行为,这可能是commandButton未被执行的原因。我建议您改为使用oncomplete事件:

onstart