Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery引导模式在get调用后未关闭_Jquery_Bootstrap 4_Bootstrap Modal - Fatal编程技术网

JQuery引导模式在get调用后未关闭

JQuery引导模式在get调用后未关闭,jquery,bootstrap-4,bootstrap-modal,Jquery,Bootstrap 4,Bootstrap Modal,我有一个JQuery,它从java后端获取数据列表。这很好用。我试图做的是在后端bean运行时显示加载模式,在加载完成并返回数据时隐藏加载模式 我尝试了('toggle'),('hide').close click().done().fail().always(),如下所示,但似乎没有任何效果 当我单击按钮时,它会显示模式,我可以看到数据被加载到html页面上的选择列表中,但在获取完成后,加载模式不会关闭 <div class="modal fade" id="loadingModal"

我有一个JQuery,它从java后端获取数据列表。这很好用。我试图做的是在后端bean运行时显示加载模式,在加载完成并返回数据时隐藏加载模式

我尝试了('toggle'),('hide').close click().done().fail().always(),如下所示,但似乎没有任何效果

当我单击按钮时,它会显示模式,我可以看到数据被加载到html页面上的选择列表中,但在获取完成后,加载模式不会关闭

<div class="modal fade" id="loadingModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header"><h4>Loading....</h4></div>
            <div class="modal-body">
                <div class="spinner-grow text-primary" role="status">
                    <span class="sr-only">Loading...</span>
                </div>
            </div>
        </div>
    </div>
</div>

<button type="button" class="btn btn-primary btn-sm" onclick="getContent()">Get Content</button>

<select class="form-control form-control-sm" id="primaryList"></select>

<script type="text/javascript">
    function getContent() {
        $('#loadingModal').modal('show');

        $.get("/admin/getPrimaryList/", function(data) {
            if(data.length == 0)
            {
                $('#loadingModal').modal('hide');
                return false;
            }
            data.forEach(function(item, i) {
                var option = "<option value='" + item + "'>" + item + "</option>";
                $("#primaryList").append(option);
            });
        }).done(function() {
            $("#loadingModal").modal('hide');
        }).fail(function() {
            $("#loadingModal").modal('hide');
        }).always(function() {
            $("#loadingModal").modal('hide');
        });

        $("#loadingModal").modal('hide');
    };
</script>

加载。。。。
加载。。。
得到满足
函数getContent(){
$('#loadingmodel').model('show');
$.get(“/admin/getPrimaryList/”,函数(数据){
如果(data.length==0)
{
$('#loadingModal').modal('hide');
返回false;
}
data.forEach(功能(第i项){
var option=“”+项目+”;
$(“#primaryList”)。追加(可选);
});
}).done(函数(){
$(“#加载模式”).model('hide');
}).fail(函数(){
$(“#加载模式”).model('hide');
}).always(函数(){
$(“#加载模式”).model('hide');
});
$(“#加载模式”).model('hide');
};

谢谢

对我来说很好。这是我的小提琴:

我的小提琴和您的示例之间唯一的区别是我使用了
jQuery
来连接click事件。请检查您的代码在运行时是否抛出任何
javascript
错误

将隐藏模式调用放置在成功回调的末尾

$.get('URL', function(data) {
    ...
    $('#loadingModal').modal('hide');
});
或者在
done
回调函数中工作

$.get('URL', function(data) {
    ...

}).done(function() {
    $('#loadingModal').modal('hide');
});

我找不到任何ID为
loadingModal
的元素,也找不到任何类为
close
的元素。很抱歉,我现在更新了问题以显示我是如何尝试的。以前的代码是另一种尝试,也不起作用。请尝试在
done、fail、always
调用中添加
console.log(“test”)
,并查看是否可以在控制台中看到消息。我已将console.log(“test 1”)放在done中,将console.log(“test 2”)放在fail中,将console.log(“test 3”)放在always中。测试1和测试3得到打印,但模态保持打开。我几乎有这样的感觉,代码运行得太快了,当模式“显示”时,“隐藏”已经运行了,因此保持打开状态。不确定这是否可行。谢谢,但我没有任何乐趣。我认为对backing data.get的调用需要很长的时间,然后JQuery没有跟上,或者执行得太快。不确定是什么,但我没有错误,模式也没有关闭。谢谢,我在我的网站上使用了SBAdmin2布局,它附带的css或js文件一定导致了这个问题。我在模板之外尝试了你的解决方案,它100%有效。