无法传递数组元素以还原表单



我是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的"最佳实践",但是在我更改它之前,我想了解为什么它是这样的。我提前感谢您的评论,因为我非常希望澄清这个问题。

它发生了,因为对于单个单选按钮,只能在一组广播按钮中单击一个单击。

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

最新更新