0

これが私が持っているスクリプトです。基本的には、ページの読み込み時にいくつかのチェックボックス画像を切り替えます(クリックしやすいように、チェックボックスをより大きな画像に置き換えています)。

エラーが表示されます: [13:26:12.076] TypeError: can't convert undefined to object @ http://example.com/manage_account_js_snippet.js:17

どうしてこれなの?私は、checkboxArray をすでにオブジェクトとして明確に宣言していました。したがって、なぜこのエラーがスローされ続けるのかわかりません。私は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