2015-11-11 77 views
0

我通過一個按鈕data attributes觸發模式。該按鈕在datatable上連續排列。該模式用於更新數據庫中的實體。下面是打開的模態代碼:Bootstrap模式打開按鈕需要兩次點擊才能在關閉後重新打開

<button 
    data-toggle="modal" 
    data-target="#updateInstitutionModal" 
    data-id="' + data.id + '" 
    data-name="' + data.name + '" 
    data-requires_id="' + data.requires_id + '" 
    class="btn btn-xs btn-primary bootstrap-modal-form-open" 
> 
    <i class="glyphicon glyphicon-edit"></i> Edit 
</button> 

我使用這個https://github.com/JesseLeite/Laravel-Bootstrap-Modal-Form擴展,來處理與Ajax請求我的後端是PHP/Laravel涉及模態形式。我已經修改了它稍微做下一次的形式已經沒有返回的錯誤提交:

function reload() { 
    // remove the modal 
    $('#updateInstitutionModal').hide(); 
    $('body').removeClass('modal-open'); 
    $('.modal-backdrop').remove(); 
    // refresh my datatable 
    $('#institutions-table').DataTable().ajax.reload(); 
    return true; 
} 

最初它只是做了以下內容:location.reload();而我打電話給我自己的重載方法。

問題是,如果我點擊更新按鈕並執行更新一切正常,但如果我立即單擊該按鈕以更新x或其他任何行中的更新按鈕,模式不會顯示出來。再次按下按鈕後,模式將顯示。我在這裏做錯了什麼想法?

回答

1

替換:

function reload() { 
    // remove the modal 
    $('#updateInstitutionModal').hide(); 
    $('body').removeClass('modal-open'); 
    $('.modal-backdrop').remove(); 

    // ... 
} 

有:

function reload() { 
    // toggle the modal 
    $('#updateInstitutionModal').modal('toggle'); 

    // ... 
} 

而現在它的工作。我應該是切換模式,而不是關閉它。所以這個按鈕還在開着,我相信,這就是爲什麼它需要兩次點擊。問題解決了!