2013-11-14 47 views
0

我想阻止引導模式退出,直到ajax響應,或者甚至不響應,如果響應是錯誤的,可以說。
下面是代碼:只有 莫代爾體:防止模態退出,直到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響應。
其實,即使我不清楚這個問題,這個問題是打開進一步的編輯或建議。
在此先感謝

回答

1

您可以添加一個回調關閉事件(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; 
    } 
});