我是JavaScript的初学者。为了练习,我尝试使用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的“最佳实践”,但在我更改之前,我想了解它为什么会这样。我提前感谢你的意见,因为我非常想澄清这个问题。
答案 0 :(得分:1)
这是因为对于一个单选按钮,只能在一组单选按钮中单击一个单选按钮。
对于复选框,您使用相同的ID两次,因此更改实际上并不反映在其他复选框上。