我在HAML文檔上有一些複選框,當點擊'刷新'按鈕時它應該改變顯示的結果。這工作正常,但是當頁面重新加載被選中的框時,所有這些都不再被選中。在HAML中保留複選框
如何重新配置HAML以在頁面瀏覽中保持複選框選中狀態?
= form_tag movies_path, :method => :get do
Include:
- @all_ratings.each do |rating|
= rating
= check_box_tag "ratings[#{rating}]", '1', true
= submit_tag 'Refresh'
我還指定的複選框都應該被默認選中,但是當我加載網頁,他們將不檢查...
我認爲這可能是相當複雜的實現?(默認狀態)。 。您必須以某種方式在請求之間保存複選框的狀態。一種方法是在每次選中複選框時使用AJAX發送請求。然後服務器可以將信息存儲在會話中。 另一種方式是將複選框信息存儲在本地存儲中,但這隻適用於現代瀏覽器。 – Jesper
+1 @Jesper我認爲這是您建議的一個很好的解決方案,不要太複雜。 skeniver checkout [jquery.ajax()](http://api.jquery.com/jQuery.ajax/)發送一個請求到一個控制器動作,點擊複選框並將該複選框的id(或任何)存儲到在會話中選擇並將它們傳遞到您的視圖中。 – cih
您可以將複選框邏輯保留在視圖之外,而且應該讓事情更輕鬆。例如,通過將新的類屬性設置爲params [:rating],然後將結果散列值從1更改爲true,則不需要其他解決方案中描述的複雜邏輯。 – Horus