【发布时间】:2019-10-07 12:32:05
【问题描述】:
我有一个从 Java 后端获取数据列表的 JQuery。这完美地工作。我要做的是在后端 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>
谢谢!
【问题讨论】:
-
我在其中找不到 ID 为
loadingModal的任何元素或类close的任何元素。 -
抱歉,我现在更新了问题以展示我是如何尝试的。以前的代码是另一种尝试,也没有奏效。
-
尝试在您的
done, fail,always调用中添加console.log("test"),看看您是否可以在控制台中看到该消息 -
我已将 console.log("test 1") 放入完成,console.log("test 2") 放入失败,console.log("test 3") 始终放入。打印测试 1 和测试 3,但模式保持打开状态。我几乎感觉到代码运行得很快,而当模式“显示”时,“隐藏”已经运行,因此保持打开状态。不确定这是否可能。
标签: jquery bootstrap-4 bootstrap-modal