javascript getElementById 在 chrome 中给出错误,但在 IE 中工作正常

javascript getElementById gives error in chrome but works fine in IE

这是我的 Javascript 函数:

function deleteAlert(tabstate){
    var form = window.document.alertsForm;
    var numOfElements = form.elements.length;
    var okDelete = "false";
    for (i=0; i < numOfElements; i++)
    {
        if(form.elements[i].checked)
        {
            okDelete = "true";
            break;
        }else{
            okDelete = "false";

        }

    }
    if(okDelete == "true")
    {
        //changPage("Screen1b.html");  only for prototype
        form.action="/cpi/producer/myAlerts/alertsGateway?jadeAction=MA06&tab="+tabstate;
        form.document.getElementById('deleteAlertsButton').disabled=true;
        form.submit();

    }else{
        alert("Please select one or more items to delete.");
    }
}

我在两次 jsp 中调用此函数,两者的代码片段相同(注意相同的 id 值)

<input type=button value="Delete" id="deleteAlertsButton" title="Delete" class=fbutton onclick="javascript:deleteAlert('<%=state %>');">

现在这对 IE8 中的两个 jsp 都很完美,但在 chrome 中,它给出了第二个 jsp 的错误: 未捕获的类型错误:无法读取未定义的 属性 'getElementById'

请帮忙。

而不是

form.document.getElementById('deleteAlertsButton').disabled=true;

尝试

document.getElementById('deleteAlertsButton').disabled=true;

您对 form.document 的引用不正确。 "document"在表格外

所以改变:

form.document.getElementById('deleteAlertsButton').disabled=true;

document.getElementById('deleteAlertsButton').disabled=true;

alertsForm的方法是什么?

像这样尝试改变 document.getElementById()

document.getElementById('deleteAlertsButton').disabled=true;

Definition and Usage