条件下打开Bootstrap模态框

8

我正在使用Bootstrap模态框来显示弹出内容,并且我正在使用if / else条件来打开模态框。当条件为false时,我不想打开模态框。我的代码:

<a data-toggle="modal" class="btn btn-primary" style="font-size: 10px" href="#" data-target="#myModal" title="Edit"><span class="glyphicon glyphicon-pencil"></span>Edit</a>

我的 jQuery 版本是:

 $('a[data-target=#myModal]').on('click', function (ev) {
        ev.preventDefault();
        if (filters.length <= 0) {
            alert('Please select any one item in grid');
        }
        else {
            $(this).attr('href', '/GeoRegion/Edit/' + filters[0]);
            var target = $(this).attr("href");

            // load the url and show modal on success
            $("#myModal").load(target, function () {
                $("#myModal").modal("show");
            });
        }
    });

如果过滤器长度小于等于0,则我不想打开弹窗。现在弹窗以空内容打开。

ev.preventDefault() 之后运行 console.log(filters),并展示输出结果。 - Andrew Brown
嗨,安德鲁,filters只是一个数组。如果数组长度为0,则我不想显示模态弹出窗口。我收到了警报消息,但模态弹出窗口也打开了。 - Sathish
3个回答

13
问题在于您的按钮上有一个data-toggle="modal",这是使用模态对话框的数据属性(HTML5)方式,它可以在没有任何编写的 JavaScript 的情况下工作。
移除 data-toggle,然后您的JavaScript应该可以正确运行。 文档

7

尝试去做:

if (filters.length <= 0) {
    $("#myModal").modal("hide");
}

嗨Felix,仍然有模态弹出窗口打开但内容为空。 - Sathish
“filters”是什么?你能创建一个fiddle来复制你的问题吗?我会尽力帮助你。 - Felix
嗨,Felix,filters只是一个数组。如果数组长度为0,则我不想显示模态弹出窗口。 - Sathish

1
//insert this code in your condition.
//for example.
    
if(...){
    $('#myModal').modal('show');
 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接