Javascript 无法传递数组元素以还原窗体

Javascript 无法传递数组元素以还原窗体,javascript,arrays,cookies,Javascript,Arrays,Cookies,我是JavaScript的初学者。为了练习,我尝试使用cookies恢复表单(在页面关闭/页面重新加载时)。我采取以下步骤: 使用表单选择创建数组 转换为字符串 创建cookie 检索cookie 提取字符串 转换为数组 。。。直到这里一切都变得完美。但是下一步不起作用了 传递数组值以还原表单元素 无论表单选择(在检索到的数组中正确显示)如何,在重新加载页面后,每次仅选中单选按钮(即使我增加或减少按钮数量)并选中所有复选框时,我都会得到 我尽我所能找出错误,但没有成功。我还将字符串“tr

我是JavaScript的初学者。为了练习,我尝试使用cookies恢复表单(在页面关闭/页面重新加载时)。我采取以下步骤:

  • 使用表单选择创建数组
  • 转换为字符串
  • 创建cookie
  • 检索cookie
  • 提取字符串
  • 转换为数组
。。。直到这里一切都变得完美。但是下一步不起作用了

  • 传递数组值以还原表单元素
无论表单选择(在检索到的数组中正确显示)如何,在重新加载页面后,每次仅选中单选按钮(即使我增加或减少按钮数量)并选中所有复选框时,我都会得到

我尽我所能找出错误,但没有成功。我还将字符串“true”/“false”值转换为布尔值,但没有更改

真实情况:

frm[0]=true
frm[1]=false // for two radio buttons
frm[2]=false
frm[3]=false // for two checkboxes
document.getElementById("myradio1").checked=frm[0]
document.getElementById("myradio2").checked=frm[1]
document.getElementById("mycheckbox1").checked=frm[2]
document.getElementById("mycheckbox2").checked=frm[3] // pass the array values to the form elements
但是,正如我所说,我传递的任何值都会在最后的单选按钮和所有复选框中被选中


也许这段代码没有遵循JavaScript的“最佳实践”,但在我修改它之前,我想了解它为什么会这样。我提前感谢你的评论,因为我非常想澄清这个问题

之所以发生这种情况,是因为对于单选按钮,在一组单选按钮中只能单击一个单选按钮


对于复选框,您使用相同的ID两次,因此更改实际上不会反映在其他复选框上。

1。是的,我知道单选按钮的功能和你说的一样。不过,我看不出你的评论与我的问题有什么联系。这就是我想要的(也是正常的):只需选择一个单选按钮。但我要说的是,在页面重新加载之后,我选择的任何按钮都始终是组中最后一个按钮。忽略数组数据。2.对不起,这是个打字错误。我现在改正了。我的问题仍然有效。