2

我有一个充满服务器名称的表。当我单击该链接时,它会转到一个页面,其中包含有关所述服务器的各种信息。我正在使用 SSO 来确定用户是否能够通过带有可选项目的下拉框更改某些字段。这一切都很好......作为一个页面

但是,我想将该页面转换为模式。我有模式工作,它提取所有信息......但是,下拉框每隔一次才有效。不夸张,每隔一段时间。我单击一个服务器,模式出现并且下拉列表中没有值。我可以用 firebug 检查它,并查看它在下拉列表中的值,但没有任何反应。我关闭模式,点击一个链接(相同或不同),下拉菜单工作得很好

这是我的html

<td><a href="{{ url_for('vm', vm=vm.GuestName) }}" data-keyboard="false" data-target="#vmModal" data-toggle="modal"> {{ vm.GuestName }}</a></td>

这是我的模态

<div class="modal hide fade in" id="vmModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-header">
      <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
      <h3 id="myModalLabel">Virtual Machine Info</h3>
    </div>
    <div class="modal-body" style="height: 600px; right: 12px">
    </div>
    <div class="modal-footer">
      <button type="button" class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button>
    </div>
</div><!-- /.modal -->

这是我的下拉菜单

{% if access %}
        <div class="dropdown">
            <li>
                <strong>Service:</strong>
                <a class="btn dropdown-toggle" data-toggle="dropdown" href="#"> {{ item.Service }} <b
                        class="caret"></b></a>
                <ul class="dropdown-menu" role="menu">
                    {% for service in service_data %}
                        <li><a tabindex="-1"
                               href="/api?name={{ item.GuestName }}&service={{ service.name }}"> {{ service.name }}</a>
                        </li>
                    {% endfor %}
                </ul>
            </li>
        </div>
4

2 回答 2

4

我刚刚解决了一个非常类似的问题,即我的模态对话框导致下拉菜单仅在我每隔一次打开模态对话框时才起作用。下拉菜单最初会起作用。但如果我打开和关闭模式,它将停止工作。然后,如果我打开模式并再次关闭它,下拉菜单将再次起作用。问题很简单,我的包含模态内容的目标 url 在父页面中已经引用了 bootstrap.js 文件。因此,我所要做的就是从模态内容页面中删除以下内容:

<script src="../js/bootstrap.min.js"></script>  

编辑:实际上,当我从模态内容页面中删除它时,其他元素停止工作,所以我将其添加回来。相反,我在他们的两次中添加了它,一次在页面顶部,一次在页面底部标签之前。现在它每次都有效。我不明白。有谁知道为什么会这样?

Fabrice G,我尝试了您推荐的方法,但无法以这种方式工作。我一定有一个不同的问题。

于 2014-04-06T21:15:57.040 回答
0

嗨,我有同样的问题;经过长时间的分析,我找到了解决方案:在 div modal 上添加“style="display:none;"。我不知道为什么,但是当你加载页面时,模式是隐藏的,但是如果你用 firebug 检查模式恢复下拉菜单. 显示模态并隐藏后;js添加“style="display:none;" 和下拉作品。

于 2013-12-05T08:28:37.040 回答