无法使用JavaScript启用复选框

无法使用JavaScript启用复选框,javascript,asp.net,ajax,Javascript,Asp.net,Ajax,我有一个ASP.NET网站。将在代码隐藏中创建一个复选框,并按如下方式禁用该复选框: cBox = New CheckBox cBox.ID = "Link" & lngUSN & "|" & objTableMapping.DatasetName & "|" & CStr(objDRInput("URNs")) & "|" & intLinkCount & "|" & objTableMapping.Reference c

我有一个ASP.NET网站。将在代码隐藏中创建一个复选框,并按如下方式禁用该复选框:

cBox = New CheckBox
cBox.ID = "Link" & lngUSN & "|" & objTableMapping.DatasetName & "|" & CStr(objDRInput("URNs")) & "|" & intLinkCount & "|" & objTableMapping.Reference
cBox.InputAttributes.Add("class", "Link" & lngUSN & "|" & objTableMapping.DatasetName & "|" & CStr(objDRInput("URNs"))) '& "|" & intLinkCount)
cBox.Checked = False
cBox.Enabled = False
window.onload = EnableLinkAndUnLinkCheckboxes;

function EnableLinkAndUnLinkCheckboxes()
    {
        //Go through all of the checkboxes on the webpage and ensure they are enabled
        var frm = document.forms[0];
        for (i = 0; i < frm.elements.length; i++) {
            if (frm.elements[i].type == "checkbox") {
                alert('got here')
                frm.elements[i].disabled = false;
                }
            }
    }
通过AJAX加载页面后,应按如下方式启用复选框:

cBox = New CheckBox
cBox.ID = "Link" & lngUSN & "|" & objTableMapping.DatasetName & "|" & CStr(objDRInput("URNs")) & "|" & intLinkCount & "|" & objTableMapping.Reference
cBox.InputAttributes.Add("class", "Link" & lngUSN & "|" & objTableMapping.DatasetName & "|" & CStr(objDRInput("URNs"))) '& "|" & intLinkCount)
cBox.Checked = False
cBox.Enabled = False
window.onload = EnableLinkAndUnLinkCheckboxes;

function EnableLinkAndUnLinkCheckboxes()
    {
        //Go through all of the checkboxes on the webpage and ensure they are enabled
        var frm = document.forms[0];
        for (i = 0; i < frm.elements.length; i++) {
            if (frm.elements[i].type == "checkbox") {
                alert('got here')
                frm.elements[i].disabled = false;
                }
            }
    }
“Get-here”警报多次出现,表示已到达以下代码:frm.elements[i].disabled=false;,但是,复选框未启用。为什么会这样?

试试下面的一个

function EnableLinkAndUnLinkCheckboxes() {
        //Go through all of the checkboxes on the webpage and ensure they are enabled
        var frm = document.forms[0];
        for (i = 0; i < frm.elements.length; i++) {
            if (frm.elements[i].type == "checkbox") {
                frm.elements[i].removeAttribute('disabled');
                frm.elements[i].parentElement.removeAttribute('disabled');
            }
        }
    }

您是否尝试删除与removeAttribute一起显示的属性?在警报“Get-here”后忘记了分号您确定元素是正确的吗?因为这很有效,谢谢。这似乎是可行的,但这行的重点是什么:frm.elements[i].parentElement.removeAttribute'disabled';?对于复选框,浏览器渲染为复选框类型的父元素。每当我们禁用复选框时,它都具有“disabled”属性。所以如果我们想通过脚本启用,我们也需要删除这个属性。此外,我仅在IE中就看到了父元素问题,FF在跳过这一行时工作得很好。如果对您有帮助,请将此标记为答案。