在用户定义的变量上获得selecteindex -适用于IE而不是Firefox

Getting selectedIndex on a userdefined variable - Works in IE not Firefox

本文关键字:IE 适用于 Firefox selecteindex 定义 用户 变量      更新时间:2023-09-26

我有以下函数,根据用户的选择填充HTML文本字段。由于引用的数量可以是1到多,所以我传入了它们正在更新的引用的id。

我得到了一行的错误:

var IndexOfReferenceSelect = ReferenceSelect.selectedIndex;

表明ReferenceSelectnull。如何在Firefox浏览器中设置ReferenceSelect ?我认为使用getElementById会起作用。在IE中可以,但在Firefox中不行。

function SelectReference(ReferenceNum){
    var i;
    var ReferenceSelect = document.getElementById("Reference_" + ReferenceNum);
    var Author      = document.getElementById("Author_Last_Name_" + ReferenceNum);
    var Title       = document.getElementById("Title_" + ReferenceNum);
    var Edition     = document.getElementById("Edition_" + ReferenceNum);
    var Publisher   = document.getElementById("Publisher_" + ReferenceNum);
    var Year1       = document.getElementById("Year_" + ReferenceNum);
    var Pages       = document.getElementById("Pages_" + ReferenceNum);
    var ReferenceList = new Array(<%=strBigListOfOptionTagGroups%>);
    var IndexOfReferenceSelect = ReferenceSelect.selectedIndex;
    var IndexOfReferences = ReferenceList[IndexOfReferenceSelect].split("|");
    Author.value    = IndexOfReferences[0];
    Title.value     = IndexOfReferences[1];
    Edition.value   = IndexOfReferences[2];
    Publisher.value = IndexOfReferences[3];
    Year1.value     = IndexOfReferences[4];
    if (IndexOfReferenceSelect == 0){
        Pages.value = '';
    }
}

使用document.getElementById正是这样做的。所以问题可能是DOM还没有正确加载,当你试图访问元素;或ReferenceNum没有正确使用;或者您设置name属性而不是id:在这种情况下,IE有一个错误,不会使名称或id之间的差异,它将返回元素,其中遵循标准的浏览器将返回null