document.cookie = "btnname=btnname1#btnname2#btnname3";
document.cookie = "otherstuff=...";
我需要为cookie中的每个名称创建一个foreach循环,并再次选中复选框。 我不知道如何只获取btnname值。 如何获取字符串值?
str = ???
var btnname str.split("#");
btnname.forEach(function)
function(){
document.getElementsByName(btnname).checked = true;
}
如果需要正确解析字符串,需要首先获取等号(=
)后的部分。 之后,只需用分隔符(#
)拆分即可。
一旦有了所有的名称,就用这个名称找到元素。 您可以通过字段名称直接访问表单上的字段。
null
const cookieValue = 'btnname=btnname1#btnname2#btnname3';
const applyState = (form, value) => {
const substr = value.substring(value.indexOf('=') + 1);
substr.split(/#/g).forEach(id => form[id].checked = true);
};
applyState(document.forms.example, cookieValue);
<form id="example">
<input type="checkbox" name="btnname1" />
<input type="checkbox" name="btnname2" />
<input type="checkbox" name="btnname3" />
<input type="checkbox" name="btnname4" />
<input type="checkbox" name="btnname5" />
</form>