如果页面重新加载,如何在表单上保留对单选按钮的选择

Posted

技术标签:

【中文标题】如果页面重新加载,如何在表单上保留对单选按钮的选择【英文标题】:How can I keep the selection of a radio button on a form if a page reloads 【发布时间】:2019-10-26 03:17:05 【问题描述】:

早安,

我创建的表单的一部分由两组单选按钮组成,它们根据选择的按钮显示特定文本。

如果用户单击提交按钮,但没有错误地输入错误(或错过了某个字段),则页面会重新加载并在顶部显示错误。不幸的是,单选按钮被重置为无选择,因此用户必须再次选择选项才能显示需要修改的相关文本。

如何才能使单选按钮在页面重新加载后不会重置(即,将保存选择)?

注意:用户点击提交后,我无法阻止页面重新加载;这就是 CMS 的设置方式。

我尝试了一些脚本并在 Google 上进行了搜索,但由于我正在使用的古老 CMS 的限制,我似乎无法获得任何工作。

<p id="submit">Please select one of the following:<strong class="required" style="color:red">(required)</strong></p><div>

// 这里是需要保存的单选按钮组之一。您会注意到他们正在调用脚本以在选择时显示特定文本

<input type="radio" name="type" id="selection1" onclick="myOwnBehalf()" required> I am submitting this question on my on own behalf.<br/>
<input type="radio" name="type" id="selection2" onclick="onBehalfSomeone()" required> I am making this question on behalf of someone else.<br/>
<input type="radio" name="type" id="selection3" onclick="anon()" required> I would like to be anonymous.<br/>

....

一旦页面重新加载,单选按钮选项将重置为空白,因为用户填写不正确。

【问题讨论】:

How to reload current page without losing any form data?的可能重复 【参考方案1】:

每次您导航到新页面(或返回同一页面)时,所有 javascript 状态都会丢失。

这意味着您需要以一种或另一种方式将旧状态传递给新页面。以下是执行此操作的一些方法:

这些需要为您的页面使用像 php 这样的脚本语言:

PHP 会话(如果您使用 PHP 脚本语言) 使用表单 POST 而不是简单的链接进行导航

这些可以只用 JavaScript 完成

您导航到的 URL 中的 CGI 变量,例如 mypage.php?choice1=3&choice2=5 设置一个cookie然后读取它 html5 本地存储

(CGI 变量:How to get the value from the GET parameters?)

【讨论】:

以上是关于如果页面重新加载,如何在表单上保留对单选按钮的选择的主要内容,如果未能解决你的问题,请参考以下文章

PHP 单选按钮 - 出错后保留表单中的值

离子单选按钮验证

在 Django 表单中,如何呈现单选按钮以便在页面上分隔选项?

如何在 Cocoa Applescript (ApplescriptObjC) 中对单选按钮进行编程

使用单选按钮显示/隐藏 div 的多种重力形式验证

提交 PHP 后保留表单值