我想阻止引导模式在ajax响应之前解除,或者甚至在响应为false时不解除,我们说。
这是代码:
仅模态体:
<div class="modal-body">
<div class="control-group">
<div class="controls">
<label for="sharedUser" class="control-label right">Share With:</label>
<input type="text" name="sharedUser" id="sharedUser" placeholder="Username to Share">
<label class="help-block errorLabel fl width100" id="kpiNameError"></label> </div>
</div> </div>
这是确定如何处理模态的脚本:
function shareKpi(kpiId,username){
var shareUrl = "${createLink(action:'shareKpi',controller:'dashboard')}"
var msg;
jQuery.ajax({
type: 'POST',
url: shareUrl,
data: "kpiId="+kpiId+"&sharedUser="+username,
success: function(response,textStatus){
msg=response;
},
error:function(XMLHttpRequest,textStatus,errorThrown){}
});
return false;
}
我想要的是模态,直到ajax响应才被解雇。
实际上即使我不清楚这个问题,这个问题也可以进一步编辑或建议。
提前谢谢
答案 0 :(得分:2)
您可以在关闭执行之前在Bootstrap触发的关闭事件(hide.bs.modal
)上添加回调。
通过保持状态,您可以确定是否可以关闭模态。当不允许用户关闭模态并在ajax成功时显示它(并允许访问者关闭)时,隐藏关闭图标可能是个好主意。
以下是一些示例代码,可以帮助您进一步:
var ajaxSucceeded = false;
function shareKpi(kpiId, username){
var shareUrl = "${createLink(action:'shareKpi',controller:'dashboard')}",
msg;
jQuery.ajax({
type: 'POST',
url: shareUrl,
data: "kpiId="+kpiId+"&sharedUser="+username,
success: function(response,textStatus){
msg = response;
ajaxSucceeded = true;
},
error:function(XMLHttpRequest,textStatus,errorThrown) {
// show error message
ajaxSucceeded = false;
}
});
return false;
}
$('#myModal').on('hide.bs.modal', function () {
if (!ajaxSucceeded) {
// prevent closing of modal
return false;
}
});