0

我想防止引导模式在 ajax 响应之前关闭,或者如果响应为假,甚至不关闭,可以说。
这是代码:仅模态体:

    <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 响应之前不被解雇的模态。
实际上,即使我不清楚这个问题,这个问题也可以进一步编辑或提出建议。
提前致谢

4

1 回答 1

3

hide.bs.modal您可以在执行关闭之前对由 Bootstrap 触发的关闭事件 ( ) 添加回调。

通过保持状态,您可以确定模态是否可以关闭。当不允许用户关闭模式时隐藏关闭图标并在 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;
    }
});
于 2013-11-14T13:47:35.667 回答