2011-11-07 82 views
1

我有一個簡單的功能,打開一個模式內的網址,並可以在頁面上有多個模態。在一個這樣的例子中,用戶將從另一個模態聲明中打開一個模態,以編輯當前在第一模態中顯示的一些內容。jQuery模式棧與AJAX形式

問題是當第二模態內的表單被提交(使用ajax)是如何刷新第一模態。我需要知道兩種模式才能刷新以及使用哪些內容刷新模式。

有沒有人曾經做過這樣的事情?有一些想法?

我唯一的想法是每次用戶點擊ajax模式鏈接並將它們存儲在數組中時記錄索引和url,然後在表單提交時檢查表單索引的父模式是否匹配其中一個數組,然後使用這些值刷新正確的模態,同時存儲在數組中的url。但這是非常囉嗦,相當潦草,結果是不可預測的。

任何人有任何其他/更好的解決方案?

乾杯

回答

-1

我做了很多!祕訣在於將舊的模態內容保存在變量中。非常簡單:

var oldContent=''; //outside your loop or modal procedures 
.. onClick="oldContent=escape($('#'+your-modal-id).html()); " 

.. on process finished: 
if (oldContent != '') $('#'+your-modal-id).html(unescape(oldContent)); 

玩得開心!

+0

數據屬性刷新頁面上的所有情態動詞那倒不用因爲oldContent將會是舊的,而不是已經在第二模式中進行了修改的重新加載的內容。 – Cameron

+0

更不用說每次用戶點擊一個模式按鈕時,oldContent就會被覆蓋!因此爲什麼我提到循環一個數組。 – Cameron

+0

30年前,當我進行結構化系統分析課程時,我的老師堅持要求每個用戶都會問你一個圈子,但你總是會提供一個方塊。道德:溝通...... –

0

好吧,所以你想打開一個新的模態從當前的模態,並在完成該子模態後,重新加載舊模態與由子子修改的更新內容。 Ooooooof!

你的一段代碼會有幫助。但在這裏它(我已經完成了B-4-2):

在當前模態上創建一個空的div(可以用你的模態div標準...顯示:none和id ='dataExchange'例)。

將修改過的東西從子模塊放入該dataExchange div。

完成子模態後,從dataExchange div中加載適當的東西到oldContent中(用$('#'+ your-modal-id).html(unescape(oldContent))重新加載)將其隱藏同時更新並淡出;將它滑回去;等

我在正確的軌道?

0

決定採用

ajaxModalInstance.find('.uiModal').attr('data-url', clickedLink.attr('href'));

傳遞模式網址爲HTML5的數據,我就可以使用使用的模態