bootstrap模態框(modal)使用remote方法載入資料,只能載入一次的解決辦法
阿新 • • 發佈:2019-02-15
bootstrap的modal中(關於modal的介紹見:http://www.runoob.com/bootstrap/bootstrap-modal-plugin.html),有一個remote選項,可以動態載入頁面到modal-body中
有兩種方法,一種是使用連結,另一種就是使用指令碼。
1 使用連結
<a href="user/userDetail.jsp" data-toggle="modal" data-target="#myModal">開啟對話方塊</a>
當點選該連線時,userDetail.jsp的內容就可以動態的載入到div.modal-body中。當然這裡的連線也可以是action
2 使用指令碼
[javascript] view plaincopyprint?- $("#myModal").modal({
- remote: "page.jsp"
- });
但是這樣載入後,會有問題,modal資料只加載一次,如果要載入不同的資料,例如根據id查詢不同物品的詳細資訊,modal的資料是不能更新的,即使傳的id值不同。其實解決辦法很簡單,只需要在載入下次資料前,將之前的載入的資料清除即可。
清除之前載入的資料,讓對話方塊能夠在每次開啟時重新載入頁面
最簡單的方式就是監聽modal的hidden,當modal關閉時,即把資料清除即可:
- $("#myModal").on("hidden", function() {
- $(this).removeData("modal");
- });
也可以在每次開啟對話方塊之前移除資料,效果是一樣的。
注:上面的程式碼基於 Bootstrap v2,如果使用 Bootstrape v3,模態對話方塊的 HTML 和事件的寫法有一些不同,例如對於上面的 hidden 事件,要寫成:
[javascript] view plaincopyprint?-
$("#myModal").on("hidden.bs.modal"
- $(this).removeData("bs.modal");
- });