无法传递Array元素来恢复表单

时间:2014-01-31 06:42:42

标签: javascript arrays cookies

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

  • 创建一个包含表单选择的数组
  • 转换为字符串
  • 创建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的“最佳实践”,但在我更改之前,我想了解它为什么会这样。我提前感谢你的意见,因为我非常想澄清这个问题。

1 个答案:

答案 0 :(得分:1)

这是因为对于一个单选按钮,只能在一组单选按钮中单击一个单选按钮。

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