2012-09-13 86 views
3

我正在使用Twitter Bootstrap彈出窗口顯示來自jQuery在淘汰賽驅動窗體上的驗證錯誤。我已經知道彈出窗口很好,但是如果我必須在彈出窗口打開時重新加載數據(例如在獲取時),它將永遠保持在那裏。使用jQuery驗證和淘汰賽引導彈出窗口

我創建了一個jsFiddle來演示。它可以發現here

要顯示該問題,只需啓動小提琴,單擊「添加禮物」,然後單擊「提交」(錯誤應彈出),然後單擊「重新加載」...錯誤將保留。

我能做些什麼來解決這個問題?

回答

1

只是爲了將彈出窗口隱藏在重載功能中太簡單了嗎?

self.reload = function() { 
    $(".popover").hide(); 
    ...... 
} 

http://jsfiddle.net/unklefolk/cmUtX/5/

+0

到的缺點是,如果存在不具有任何與驗證網頁上的彈出別的地方,它會被也被關閉。我也不知道從「內存泄漏」的角度會做什麼,因爲你沒有通過調用popover函數以「Bootstrap」方式關閉它。然而,這可能是我所能做的... –

+0

我同意這不是一個完美的解決方案,Brian。今天早上我周圍有點混亂。基本上看來你需要在重新加載後重新驗證你的表單。在'Reload'中重新填充observableArray以重新驗證表單後,我嘗試添加一個setTimeout,但這不起作用。我還嘗試在有限成功的淘汰賽模板中使用afterRender回調。你可以在http://jsfiddle.net/unklefolk/cmUtX/7/看到結果,你不再有你的漂亮的彈出消息,並且只要添加了一個禮物就可以驗證,但也許它可能會給你一些啓發!祝你好運! –

+0

我接受這個作爲答案,因爲我找不到更好的答案,這會起作用。我最終放棄了這種方法,並決定使用Knockout Validation而不是jQuery Validation。內存泄漏的觀點讓我感到很害怕。 –