我创建了一个:
var checkboxFarm = new Array();
然后我想在该数组中记录一个复选框状态,因为有11个复选框。
Button.addEventListener("click", function() {
rp_farmAtivada(index);
}, false);
单击时更改数组中的变量:
function rp_farmAtivada(index) {
checkboxFarm[index] = !checkboxFarm[index];
};
但每次刷新页面时都会丢失所有复选框状态,并且我知道所有数组都会获得“未定义”值。
checkboxFarm数组在脚本的开头定义,因此它应该具有全局范围。
我错过了什么吗?
答案 0 :(得分:7)
您需要保存复选框的状态才能刷新并保持其状态,因为HTTP是无状态的。
您可以在点击时添加一些AJAX,将结果保存到数据库或cookie中。
然后在DOM就绪时,您可以检索这些先前的结果并相应地更改复选框值(或者使用服务器端语言来回显标记中的默认状态)。
您对LukeN's answer的评论......
我可以为所有人定义默认值 数组为true而不设置它 对于每一个?
是的,你可以。看看这段代码......
// I'm using an empty array literal here, more succinct and widespead than the old `new Array()`
var checkboxFarm = [];
// You will need to define here how many array members you want to have the `true` value
for (var i = 0; i <= 10; i++) {
checkboxFarm[i] = true;
}
请参阅JSbin在线工作。
答案 1 :(得分:1)
这就是它的工作原理。如果要保存状态,请使用cookie。或者在服务器端脚本中生成值并将它们回显给Javascript。