【问题标题】:Unable to update bootstrap modal with onclick无法使用 onclick 更新引导模式
【发布时间】:2018-03-29 15:57:53
【问题描述】:

目前我正在尝试打开一个模式对话框,其中包含一个填充了来自支持 bean 的值的表单。由于每个按钮都与表中的条目链接,因此使用按钮中提供的对象加载 bean(或应该加载,因为目前不工作)。按钮的当前代码如下。

modal和触发事件的按钮在同一个页面,但是这个页面有2个bean。一个用于单击按钮后应立即显示的模式(用于修改给定对象),另一个用于打印主窗口中的所有数据。

基本上,我要做的是实例化一个 bean,将给定对象通过请求传递给第二个 bean 具有的 @PostConstruct 方法,并在所有过程完成后显示模态,刷新模态并然后显示出来。

<b:button value=""
    icon-size="2x"
    onclick="#{bean.dummy()}"
    style="height: 64px; width: 64px; float: right; border: none; margin-top: 25px; border-radius: 0px;"
    oncomplete="$('.config_modal').modal()">
        <f:param name="action" value="#{bean.value}" />
</b:button>

除了该代码之外,我还尝试了下面列出的一些修改。上一个是最新的。

  • 以前,JS modal() 调用位于“onclick”事件中。
  • 添加了一个“虚拟”方法,因为模态对话框从未与实际代码一起显示,因为我认为我需要一种触发器。
  • 这不是b:commandButton,因为它会刷新整个页面并且永远不会显示对话框。

【问题讨论】:

  • 您可以试试oncomplete="$('.config_modal').modal('true');" 并确保b:modal 的styleClass 为config_modal 即b:modal id="config_modal" styleClass="config_modal"
  • 但在页面重新加载后不会触发 oncomplete。你需要使用ajax。例如&lt;h:form&gt;&lt;b:commandButton value="click" action="#{bean.dummy}" oncomplete="$('.config_modal').modal('true');"&gt;&lt;f:ajax render="@form"/&gt;&lt;/b:commandButton&gt;&lt;/h:form&gt;。您想要重绘的页面的任何部分都必须在 &lt;h:form&gt;
  • @MitchBroadhead 感谢 Mitch 的回复,我按照您在第二条评论中的建议进行了操作,但仍然无法正常工作,我仍然不知道自己做错了什么……价值是在另一个 bean 中被正确接收。好的,在我的案例中发现了错字,从 .modal() 内部删除了 'true' ,现在它可以工作了。非常感谢!回复一个答案,以便我接受。
  • 很高兴它现在正在工作。我已按照您的建议复制评论作为答案

标签: jsf modal-dialog bootsfaces ajax-update


【解决方案1】:

重新加载页面后不会触发 oncomplete。你需要使用ajax。例如&lt;h:form&gt;&lt;b:commandButton value="click" action="#{bean.dummy}" oncomplete="$('.config_modal').modal('true');"&gt;&lt;f:ajax render="@form"/&gt;&lt;/b:commandButton&gt;&lt;/h:form&gt;。您要重绘的页面的任何部分都必须在 &lt;h:form&gt;

【讨论】:

    猜你喜欢
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 2019-08-18
    • 1970-01-01
    • 2017-08-11
    • 2021-08-01
    相关资源
    最近更新 更多