Javascript declared variable is undefine
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");
}
}
}
}
No comments:
Post a Comment