0

所以这是我拥有的脚本,基本上它的作用是在页面加载时切换一些复选框图像(我将复选框替换为更大的图像以便于点击)。

我收到错误:[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");
        }
    }
  }
}
4

0 回答 0