So here is the script that I have, basically what it does is toggles some checkbox images (I'm replacing checkbox with much larger images for easier clicking) on a page load.
I'm getting the error: [13:26:12.076] TypeError: can't convert undefined to object @ http://example.com/manage_account_js_snippet.js:17
Why is this? I'd clearly declared checkboxArray already as an object. So I'm not sure why it keeps throwing this error. My appologies as i'm not very good with javascript so the answer might be obvious. The page this error is from is behind a login page so I can't link to it directly sadly.
EDIT: I'm an idiot - knew I forgot something - the line that screws it up is line #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");
}
}
}
}