Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript google chrome表单单选按钮在“返回”时重置所选值;“后退”;从结果页面导航_Javascript_Html_Django_Forms_Google Chrome - Fatal编程技术网

Javascript google chrome表单单选按钮在“返回”时重置所选值;“后退”;从结果页面导航

Javascript google chrome表单单选按钮在“返回”时重置所选值;“后退”;从结果页面导航,javascript,html,django,forms,google-chrome,Javascript,Html,Django,Forms,Google Chrome,我有一个来自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.Radio

我有一个来自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来保存单选按钮的状态。这是处理此问题的最佳/唯一方法吗?

您可能希望使用此库:

它完全满足您的要求,即使用HTML5会话存储:

js允许您在本地自动保存表单的文本字段值,直到表单提交。这样,如果用户意外关闭选项卡或浏览器,他们不会丢失任何宝贵的数据

它努力为可能想要使用它的UI/UX开发人员提供一个javascript无关接口。只需在表单标记中添加一些数据persist=“大蒜”,就可以了


默认情况下,数据在提交时不会保留。您可以通过向表单标记添加
data destroy=“false”
来更改此选项。

使用cookie的解决方案对您合适吗?我认为这是最好的方法。我不希望有一个cookie,但是否可以使用django会话设置来做同样的事情呢?这可能是一个相关的问题:很快,js社区的库将没有文字了:D