2013-09-24 66 views
0

我有一个窗体上有20个单选按钮。如果页面上有错误(因此页面会刷新),我需要存储单选按钮的状态。我设法让它工作50%。但是,如果我在第二次刷新时选择不同的单选按钮,它仍然会保留第一次提交的状态。如何保留页面刷新后输入单选按钮的状态

这里是我的代码:

var x= $("input[id^='question-']"); 
    $(x).click(function(){ 
    localStorage['radios'] = this.checked; 
    }); 

    $(x).prop('checked', localStorage['radios'] == 'true'); 

任何帮助将多不胜感激!

+0

通常服务器在回送页面之前设置无线电状态。 –

+0

你可以使用cookie来保存一个列表,其中包含0和1的每个单选按钮在各自的索引 – Shadow

+0

我宁愿使用本地存储为简单起见..我可能只需要从上面的代码小调整。谢谢 – Wasiim

回答

0

我认为在刷新页面后获取值的唯一形式是在发送表单后使用POST或GET发送信息。使用PHP脚本来处理表单并进行验证是可以推荐的。

如果您有任何疑问,您可以在这里how to catch information of the forms

+0

我仅限于使用JS,并且代码在asp.net平台上运行。谢谢 – Wasiim

+0

好吧,但我明白你需要提交表单到任何脚本页面没有?并且你以任何方式必须处理表单中的所有信息,不是?你可以制作表单的同一页面,表单的动作方法可以是form.asp,并且在接收信息时进行所有的验证。我是一个PHP开发人员,但这个链接,我认为可以帮助[自引用形式](http://www.codefixer.com/tutorials/self_referencing_forms.asp) – hades87

+0

感谢您的帮助..但使用localstorage似乎更容易的方法: ) – Wasiim

0

看到你的代码看起来像它只是覆盖相同的值一次又一次,无论输入什么它是,并且还应使用更改事件,而不是点击。尝试类似(未经测试):

var $x = $("input[id^='question-']"); 

// Set localstorage on change event per radio button 
$x.on('change', function(){ 
    localStorage[$(this).attr('name')] = this.checked; 
}); 

// Check all radio buttons on page load against localStorage 
$x.each(function(){ 
    $(this).prop('checked', localStorage[$(this).attr('name')] == 'true'); 
} 
+0

代码似乎不工作.. – Wasiim

+0

以及为什么使用attr名称?如果id可用? – Wasiim