2012-07-03 96 views
1

我目前有一個應用程序正在使用twitter引導模式框。模式顯示的div使用/ users/new動作中的JQuery加載。如果用戶在提交的模式框中輸入了有效數據,但是如果發送給params的數據沒有通過驗證,那麼一切都很好,控制器將重定向回新的操作,但是這次在模式框之外,用戶之前所在的頁面是沒有了,這種方式打破了讓模式盒子開始的目的。如何在模態框中進行服務器端Ajax驗證

我看過Live-Validation和其他基於JavaScript的客戶端驗證。這些是一個選項,但我更願意爲了一致性而使用用戶模型中的現有驗證。我有一種很好的方式來讓模式框在提交表單時持久化,並使控制器使用error_messages重新加載模式內的頁面?

謝謝

回答

1

是否使用javascript將error_messages加載到模態?如果是這樣,你可以檢查頁面是否有負載error_messages,然後彈出打開模態框,如果有的話。這不會保存模態的任何輸入,但會彈出它。

或者,您可以在當前模型上實現一些輕客戶端驗證。但是,它的亮度取決於你的模型在輸入方面的挑剔程度。如果它的具體內容是接受/拒絕,那麼驗證一致性就會困難得多,並且只有通過客戶端驗證才能反彈並說它是無效的並不總是很好。

+0

我正在使用/ users/new視圖作爲一個獨立的視圖,如果使用獨立模式,不想彈出模式,這將在您描述的解決方案中發生,我相信。我可能會嘗試做客戶端驗證,但我更願意以某種方式能夠做到這一點,而不訴諸於此。 – cr0atIAN

+0

有沒有理由不能使用ajax?通過將腳本重定向到ajax來更改表單有時很痛苦,但它可以節省重新加載頁面上所有信息(以及頁面本身)的麻煩。 – PeaBucket

+0

是的,我剛剛結束了ajaxifying,它很好 – cr0atIAN

相關問題