2014-06-05 41 views
2

在「返回」導航選定值I具有從Django中定義爲谷歌瀏覽器形式的無線電按鈕復位從結果

from django.forms.widgets import RadioSelect 

class SequenceInputForm(forms.Form): 
    sequence = forms.CharField(widget=forms.Textarea, validators=[validate_valid_dna_sequence]) 
    organism = forms.ChoiceField(widget=forms.RadioSelect(), initial=1,choices=[(1,"Human"),(2,"Rat"),(3,"Mouse")]) 

一個形式中Django模板的單選按鈕被渲染爲

{{ form.organism }} 

在模板上呈現具有簡單文本框和無線電選擇器的窗體。典型的用戶交互導致序列字段中的文本和單選按鈕。

的應用程序,然後,如果用戶點擊Chrome上「後退」按鈕返回,從結果頁面的形式了新的一頁

在返回結果現在。文本框中輸入數據..但單選按鈕被重置爲其初始值。

輸入值缺少內存僅在Google Chrome瀏覽器中。 在Firefox和IE中使用相同的應用程序代碼...窗體「記住」其單選按鈕選定的值。

如何讓表單記住用戶從Google Chrome中的結果頁面返回時的值。

我很抱歉,瀏覽器的具體行爲給我的印象是它需要一個瀏覽器特定的解決方案,可能不在Django代碼中。

我曾經在某處讀過解決方法是使用「html5」會話存儲API來保存單選按鈕的狀態。這是處理這個問題的最好的/唯一的方法嗎?

+0

會有一個cookie的解決方案適合你嗎?我認爲這將是最好的選擇。 – CodeFanatic

+0

我不希望沒有cookie,但它可以使用django會話設置來做同樣的事情 – harijay

+0

這可能是一個相關的問題:http://stackoverflow.com/questions/1195440/ajax-back-button-即將更新 – jproffitt

回答

2

你可能想使用這個庫:http://garlicjs.org/

這不正是你所求的,即使用HTML5會話存儲:

Garlic.js可以自動持續表單文本字段值,直到表單被提交。這樣,如果用戶不小心關閉了標籤頁或瀏覽器,用戶不會丟失任何寶貴的數據。

它努力爲可能想要使用它的UI/UX開發人員提供一個與JavaScript無關的接口。只需在你的表單標籤中添加一些data-persist =「蒜」,你就可以走了!

默認情況下,數據在提交時不會保留。您可以通過將data-destroy="false"添加到表單標籤來更改此選項。

+0

,js cummunity對於他們的圖書館而言將會失去意義:D –