所以这是我拥有的脚本,基本上它的作用是在页面加载时切换一些复选框图像(我将复选框替换为更大的图像以便于点击)。
我收到错误:[13:26:12.076] TypeError: can't convert undefined to object @ http://example.com/manage_account_js_snippet.js:17
为什么是这样?我已经清楚地将 checkboxArray 声明为一个对象。所以我不确定为什么它一直抛出这个错误。我的 appologies 因为我不太擅长 javascript,所以答案可能很明显。此错误来自的页面位于登录页面后面,因此遗憾的是我无法直接链接到它。
编辑:我是个白痴 - 知道我忘记了什么 - 搞砸的那行是第 17 行
$(document).ready(checkthemboxes());
var checkboxArray = {};
function togglecheckbox(checkboxid, forcestate)
{
if(forcestate == "checked")
{
document.getElementById("checkbox_" + checkboxid).checked = true;
document.getElementById("checked" + checkboxid).style.display = "inline";
document.getElementById("unchecked" + checkboxid).style.display = "none";
checkboxArray[checkboxid] = true;
} else if (forcestate == "unchecked") {
document.getElementById("checkbox_" + checkboxid).checked = false;
document.getElementById("checked" + checkboxid).style.display = "none";
document.getElementById("unchecked" + checkboxid).style.display = "inline";
checkboxArray[checkboxid] = false;
} else {
if(checkboxArray[checkboxid] == 'undefined')
{
checkboxArray[checkboxid] = false;
}
if(!checkboxArray[checkboxid])
{
document.getElementById("checkbox_" + checkboxid).checked = true;
document.getElementById("checked" + checkboxid).style.display = "inline";
document.getElementById("unchecked" + checkboxid).style.display = "none";
checkboxArray[checkboxid] = true;
} else {
document.getElementById("checkbox_" + checkboxid).checked = false;
document.getElementById("checked" + checkboxid).style.display = "none";
document.getElementById("unchecked" + checkboxid).style.display = "inline";
checkboxArray[checkboxid] = false;
}
}
}
function checkthemboxes()
{
var cbs = document.getElementsByClassName('uncheckedcheckbox');
var idname;
for(var i = 0; i < cbs.length; i++) {
if(cbs[i].type == 'checkbox') {
idname = cbs[i].id.replace("checkbox_","");
if(cbs[i].checked == true)
{
togglecheckbox(idname, "checked");
} else {
togglecheckbox(idname, "unchecked");
}
}
}
}