当前位置: 首页 > 知识库问答 >
问题:

客户端回调没有从primeface对话框中调用

欧阳晗日
2023-03-14

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

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

我想知道为什么在对话框的oncomplete中从来不调用javascript?

我还尝试在oncomplete属性中只添加一个警报,但警报始终不会执行。

代码附在下面。

<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个答案

上官正志
2023-03-14

在将javascript放入commandButtononclick事件之前,我遇到过一些问题。javascript可以覆盖primefaces的行为,这可能就是为什么没有执行oncomplete。我建议您改用onstart事件:

<p:commandButton id="submitButton" 
    style="margin-top: 15px; float:right;" 
    value="Submit"
    onstart="return validate();"
    action="#{requestDetailsMB.rejectRequest}"
    oncomplete="performRejectAction();" /> 
 类似资料:
  • 通过 DBGp 可以支持调试功能,DGBp 是一种常见的支持多语言和调试器 UI 通信的调试器协议。请参阅交互式调试了解更多细节。在这个页面中列出了一些与 AutoHotkey 兼容的 UI 或“客户端”。 SciTE4AutoHotkey SciTE4AutoHotkey 是一个免费的基于 SciTE 的 AutoHotkey 脚本编辑器. 除了 DBGp 支持, 它还为 AutoHotkey

  • 客户端模块是一个较复杂的模块,这里包含了集群管理、路由、地址管理器、连接管理器、负载均衡器,还与代理、注册中心等模块交互。

  • 通过 Invoke 方法同步调用 Invoke(string, []reflect.Value, *InvokeSettings) ([]reflect.Value, error) Invoke 方法有三个输入参数,两个输出参数。 第一个输入参数是远程方法名。 第二个输入参数是远程方法参数。 第三个输入参数是远程调用设置。 第一个输出参数表示返回的结果。 第二个输出参数表示返回的错误。 因为使用该

  • 我在weblogic中遇到了一个奇怪的问题,我们的web客户端突然无法调用webservice并连续数小时抛出以下异常。在webservice服务器端,未捕获任何异常,但在访问日志中仅找到http 500。重新启动托管webservice的weblogic托管服务器后,问题得到了解决。 web客户端和webservice服务器几个月来一直工作正常,但现在突然出现了问题。我相信这不是应用程序错误,因

  • 这是在一个单独的类中(不是或)。上面的工作很好,我可以看到我的MakeADialg日志消息。然而,当我试图创建一个实际的对话框,然后我得到很多崩溃。当我从C端调用到Java端时,我可以看出我并不是在摸索我在运行什么‘线程’。当我试图创建一个新的线程/对话框时,似乎遇到了麻烦。 我已经尝试了很多关于创建Runnable线程等的建议--但它们似乎总是给我一个可怕的‘无法在未调用looper.prepa

  • 这非常相似,但我的问题不同:对于非OK响应,返回带有IHttpActionResult的内容 考虑到问题不同,我要求一个更简洁的答案,如果存在的话。 我的架构如下: 对后端控制器的Javascript/jQuery调用 后端控制器调用WebAPI服务。 WebAPI服务查询数据库(etc)并返回数据 我有以下简化代码(网络 API)... 示例1:如果产品id不存在,则返回错误: 示例2如果产品i