在用户定义的变量上获取选定的索引 - 在IE中工作而不是Firefox

时间:2013-04-12 18:50:39

标签: javascript firefox selectedindex

我有以下功能,根据用户选择填充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 = '';
    }
}

1 个答案:

答案 0 :(得分:0)

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