仅在IE 11中出现JavaScript类型错误

仅在IE 11中出现JavaScript类型错误,javascript,internet-explorer,Javascript,Internet Explorer,在IE中加载js电子表单时出现错误“loadForm:if GroupDocList>0:TypeError:无法获取属性”长度;指未定义的或空的引用 这只发生在IE中,而不是Chrome或Edge 这个表单是由其他人编写的,我对JS没有太多经验 更新*通过调试,我发现是CompList对象未定义并导致了此错误。想知道为什么这在IE中没有定义,但在Chrome和Edge中工作,或者至少没有抛出错误 for(var i=0;i0){ 试一试{ $(“#selCompanyList option”)

在IE中加载js电子表单时出现错误“loadForm:if GroupDocList>0:TypeError:无法获取属性”长度;指未定义的或空的引用

这只发生在IE中,而不是Chrome或Edge

这个表单是由其他人编写的,我对JS没有太多经验

更新*通过调试,我发现是CompList对象未定义并导致了此错误。想知道为什么这在IE中没有定义,但在Chrome和Edge中工作,或者至少没有抛出错误

for(var i=0;i


函数CreatePopulateDataSet(){
//*************************************************************************
//公司/部门/子客户/计划数据集填充-开始********************
//*************************************************************************
var g_CompanyList={};
var g_DivisionList={};
var g_SubCatList={};
试一试{
if($(“#selCompanyList”).find(“option”).length>0){
试一试{
$(“#selCompanyList option”)。每个(函数(){
var Comp=$(this.text().split(“|”)[0];
var Div=$(this.text().split(“|”)[1];
var SubCat=$(this.text().split(“|”)[2];
var Plant=$(this.text().split(“|”)[3];
var CompList=g_CompanyList[Comp];
var DivList=g_部门列表[Comp+Div];
var子列表=g_子列表[Comp+Div+SubCat];
试一试{
if(hasCompanyAccess(Comp)){
如果(!CompList){CompList=new Array();}
if($.inArray(Div,CompList)=-1){
CompList.push(Div);
g_CompanyList[Comp]=CompList;
}
如果(!DivList){DivList=new Array();}
if(SubCat!=null){
if($.inArray(子类别,DivList)=-1){
DivList.push(SubCat);
g_部门列表[Comp+Div]=部门列表;
}
}
如果(!SubList){SubList=new Array();}
如果(工厂!=null){
如果($.INARAY(工厂,子列表)=-1){
子列表推送(工厂);
g_子列表[Comp+Div+SubCat]=子列表;
}
}
}
}
捕捉(错误){
警报(“无法生成用于填充下拉列表的全局列表。”+err);
}
});
}
捕捉(错误){
警惕(err);
}
$(“#selPARCompany”).html(“请选择…”);
对于(g_公司列表中的var Comp){
$(“#selPARCompany”)。追加(“+Comp+”);
}
$(“#selPARCompany”).addClass(“全宽”);
//级联重新加载-开始
//如果表单已提交,则重新加载/填充级联数据集。
if($(“#OBPropertyItemNum”).val()){
//在加载提交的表单时重新设置公司下拉框。
var tempComp=$(“#txtPARCompany”).val();
$(“#selPARCompany选项”)。每个(函数(){
if($(this.text().toUpperCase()==tempComp.toUpperCase()){
$(this.attr(“选定的”、“选定的”);
}
});
//调用CompanyToverRide方法,根据保存的值设置对正确选项卡的访问权限。
上述公司(tempComp);
var CompList=g#u CompanyList[$(“#selPARCompany选项:选中”).text().toUpperCase();
var tempDiv=$(“#txtPARDivision”).val();
//重新加载并填充分区下拉框
对于(变量i=0;i1){
$(“#selPARDivision”).closest(“td”).show();
$(“#selPARDivision”).addClass(“必需”);
}否则{
$(“#selPARDivision”).closest(“td”).hide();
$(“#selparivision”).removeClass(“必需”);
$(“#selPARDivision”).removeClass(“所需输入”);
}
分部(临时公司、临时部门);
//重新加载并填充子类别下拉框
var tempSubCat=$(“#txtPARSubCat”).val();
var DivList=g#u division list[$(“#selparivision选项:选中”).text().toUpperCase();
var Div=$(“#selparivision选项:选中”).html();
if(tempSubCat!=“”){
对于(变量i=0;i
function CreatePopulateDataSet() {
        //*************************************************************************
        //Company/Division/SubCat/Plan dataset populate - BEGIN********************
        //*************************************************************************
        var g_CompanyList = {};
        var g_DivisionList = {};
        var g_SubCatList = {};

        try {
            if ($("#selCompanyList").find("option").length > 0) {
                try {
                    $("#selCompanyList option").each(function () {
                        var Comp = $(this).text().split("|")[0];
                        var Div = $(this).text().split("|")[1];
                        var SubCat = $(this).text().split("|")[2];
                        var Plant = $(this).text().split("|")[3];

                        var CompList = g_CompanyList[Comp];
                        var DivList = g_DivisionList[Comp + Div];
                        var SubList = g_SubCatList[Comp + Div + SubCat];

                        try {
                            if (hasCompanyAccess(Comp)) {
                                if (!CompList) { CompList = new Array(); }
                                if ($.inArray(Div, CompList) == -1) {
                                    CompList.push(Div);
                                    g_CompanyList[Comp] = CompList;
                                }

                                if (!DivList) { DivList = new Array(); }
                                if (SubCat != null) {
                                    if ($.inArray(SubCat, DivList) == -1) {
                                        DivList.push(SubCat);
                                        g_DivisionList[Comp + Div] = DivList;
                                    }
                                }
                                if (!SubList) { SubList = new Array(); }
                                if (Plant != null) {
                                    if ($.inArray(Plant, SubList) == -1) {
                                        SubList.push(Plant);
                                        g_SubCatList[Comp + Div + SubCat] = SubList;
                                    }
                                }
                            }
                        }
                        catch (err) {
                            alert("Unable build global lists used to populate drop downs. " + err);
                        }
                    });
                }
                catch (err) {
                    alert(err);
                }

                $("#selPARCompany").html("<option value=''>Please Select...</option>");
                for (var Comp in g_CompanyList) {
                    $("#selPARCompany").append("<option value='" + Comp + "'>" + Comp + "</option>");
                }
                $("#selPARCompany").addClass("fullwidth");

                //Cascade Reload - BEGIN
                //Re-loads/populates the cascading data set if the form has been submitted.
                if ($("#OBPropertyItemNum").val()) {

                    //re-sets the Company drop down box on load of a submitted form.
                    var tempComp = $("#txtPARCompany").val();
                    $("#selPARCompany option").each(function () {
                        if ($(this).text().toUpperCase() == tempComp.toUpperCase()) {
                            $(this).attr("selected", "selected");
                        }
                    });
                    //Calls the CompanyTabOverride method to set access to the corrct tabs based on the saved value.
                    CompanyTabOverride(tempComp);

                    var CompList = g_CompanyList[$("#selPARCompany option:selected").text().toUpperCase()];
                    var tempDiv = $("#txtPARDivision").val();

                    //re-load and populate the Division drop down box
                    for (var i = 0; i < CompList.length; i++) {
                        if (i == 0)
                            $("#selPARDivision").html("<option value=''>Please Select...</option>");
                        if (CompList[i].toUpperCase() == tempDiv.toUpperCase()) {
                            $("#selPARDivision").append("<option selected=selected label='" + CompList[i] + "' value='" + CompList[i] + "'>" + tempComp + CompList[i] + "</option>");
                        } else {
                            $("#selPARDivision").append("<option label='" + CompList[i] + "' value='" + CompList[i] + "'>" + tempComp + CompList[i] + "</option>");
                        }
                    }
                    if ($("#selPARDivision option").length > 1) {
                        $("#selPARDivision").closest("td").show();
                        $("#selPARDivision").addClass("required");
                    } else {
                        $("#selPARDivision").closest("td").hide();
                        $("#selPARDivision").removeClass("required");
                        $("#selPARDivision").removeClass("requiredInput");
                    }

                    DivisionTabOverride(tempComp, tempDiv);

                    //re-load and populate the Sub Category drop down box
                    var tempSubCat = $("#txtPARSubCat").val();
                    var DivList = g_DivisionList[$("#selPARDivision option:selected").text().toUpperCase()];
                    var Div = $("#selPARDivision option:selected").html();
                    if (tempSubCat != "") {
                        for (var i = 0; i < DivList.length; i++) {
                            if (i == 0)
                                $("#selPARSubCat").html("<option  value=''>Please Select...</option>");

                            if (DivList[i].toUpperCase() == tempSubCat.toUpperCase()) {
                                $("#selPARSubCat").append("<option selected=selected label='" + DivList[i] + "' value='" + DivList[i] + "'>" + Div + DivList[i] + "</option>");
                            } else {
                                $("#selPARSubCat").append("<option  label='" + DivList[i] + "' value='" + DivList[i] + "'>" + Div + DivList[i] + "</option>");
                            }
                        }
                        if ($("#selPARSubCat option").length > 1) {
                            $("#selPARSubCat").closest("td").show();
                            $("#selPARSubCat").addClass("required");
                        } else {
                            $("#selPARSubCat").closest("td").hide();
                            $("#selPARSubCat").removeClass("required");
                            $("#selPARSubCat").removeClass("requiredInput");
                        }
                    }

                    //re-load and populate the Plant drop down box.
                    var tempPlant = $("#txtPARPlant").val();
                    var SubList = g_SubCatList[$("#selPARSubCat option:selected").text().toUpperCase()];
                    var SubCat = $("#selPARSubCat option:selected").html();
                    if (tempPlant != "") {
                        for (var i = 0; i < SubList.length; i++) {
                            if (i == 0)
                                $("#selPARPlant").html("<option value=''>Please Select...</option>");
                            if (SubList[i].toUpperCase() == tempPlant.toUpperCase()) {
                                $("#selPARPlant").append("<option selected=selected label='" + SubList[i] + "' value='" + SubList[i] + "'>" + SubCat + SubList[i] + "</option>");
                            } else {
                                $("#selPARPlant").append("<option label='" + SubList[i] + "' value='" + SubList[i] + "'>" + SubCat + SubList[i] + "</option>");
                            }
                        }
                        if ($("#selPARPlant option").length > 1) {
                            $("#selPARPlant").closest("td").show();
                            $("#selPARPlant").addClass("required");
                        } else {
                            $("#selPARPlant").closest("td").hide();
                            $("#selPARPlant").removeClass("required");
                            $("#selPARPlant").removeClass("requiredInput");
                        }
                    }
                }
                //Cascade Reload - END

                try {
                    $("#selPARCompany").bind("change", function () {
                        var Comp = $(this).val();

                        $("#selPARDivision").html("<option value=''>Please Select...</option>");
                        $("#txtPARDivision").val("");
                        $("#selPARSubCat").html("<option  value=''>Please Select...</option>");
                        $("#txtPARSubCat").val("");
                        $("#selPARPlant").html("<option value=''>Please Select...</option>");
                        $("#txtPARPlant").val("");

                        if ($(this)[0].selectedIndex > 0) {
                            var CompList = g_CompanyList[Comp];
                            for (var i = 0; i < CompList.length; i++) {
                                //$("#selPARDivision").append("<option value='" + Comp + CompList[i] + "'>" + CompList[i] + "</option>");
                                $("#selPARDivision").append("<option label='" + CompList[i] + "' value='" + CompList[i] + "'>" + Comp + CompList[i] + "</option>");
                            }
                        }
                        $("#selPARDivision").addClass("fullwidth");
                        $("#txtPARCompany").val($("#selPARCompany").val());

                        if ($("#selPARDivision option").length > 1) {
                            $("#selPARDivision").closest("td").show();
                            $("#selPARDivision").addClass("required");

                            $("#selPARSubCat").closest("td").hide();
                            $("#selPARSubCat").removeClass("required");
                            $("#selPARSubCat").removeClass("requiredInput");
                            $("#selPARPlant").closest("td").hide();
                            $("#selPARPlant").removeClass("required");
                            $("#selPARPlant").removeClass("requiredInput");
                        } else {
                            $("#selPARDivision").closest("td").hide();
                            $("#selPARDivision").removeClass("required");
                            $("#selPARDivision").removeClass("requiredInput");
                            $("#selPARSubCat").closest("td").hide();
                            $("#selPARSubCat").removeClass("required");
                            $("#selPARSubCat").removeClass("requiredInput");
                            $("#selPARPlant").closest("td").hide();
                            $("#selPARPlant").removeClass("required");
                            $("#selPARPlant").removeClass("requiredInput");
                        }
                        CompanyTabOverride(Comp);
                        IsEngineeringLevelRequired(Comp);
                        IsUniqPlanIDRequired(Comp, $('#selPARExpenditureinBusinessPlan').find(":selected").text());
                        //$('#selPARExpenditureinBusinessPlan').change();
                    });


                    $("#selPARDivision").bind("change", function () {
                        var Div = $("#" + $(this).attr("id") + " option:selected").html();

                        $("#selPARSubCat").html("<option  value=''>Please Select...</option>");
                        $("#txtPARSubCat").val("");
                        $("#selPARPlant").html("<option value=''>Please Select...</option>");
                        $("#txtPARPlant").val("");

                        if ($(this)[0].selectedIndex > 0) {
                            var DivList = g_DivisionList[Div];
                            if (DivList) {
                                for (var i = 0; i < DivList.length; i++) {
                                    //$("#selPARSubCat").append("<option value='" + Div + DivList[i] + "'>" + DivList[i] + "</option>");
                                    $("#selPARSubCat").append("<option  label='" + DivList[i] + "' value='" + DivList[i] + "'>" + Div + DivList[i] + "</option>");
                                }
                            }
                        }
                        $("#selPARSubCat").addClass("fullwidth");

                        $("#txtPARDivision").val($("#selPARDivision").val());

                        if ($("#selPARSubCat option").length > 1) {
                            $("#selPARSubCat").closest("td").show();
                            $("#selPARSubCat").addClass("required");

                            $("#selPARPlant").closest("td").hide();
                            $("#selPARPlant").removeClass("required");
                            $("#selPARPlant").removeClass("requiredInput");
                        } else {
                            $("#selPARSubCat").closest("td").hide();
                            $("#selPARSubCat").removeClass("required");
                            $("#selPARSubCat").removeClass("requiredInput");
                            $("#selPARPlant").closest("td").hide();
                            $("#selPARPlant").removeClass("required");
                            $("#selPARPlant").removeClass("requiredInput");
                        }
                        DivisionTabOverride($("#selPARCompany").val(), $(this).val());
                    });

                    $("#selPARSubCat").bind("change", function () {
                        //var SubCat = $(this).val();
                        var SubCat = $("#" + $(this).attr("id") + " option:selected").html();

                        $("#selPARPlant").html("<option value=''>Please Select...</option>");
                        $("#txtPARPlant").val("");

                        if ($(this)[0].selectedIndex > 0) {
                            var SubList = g_SubCatList[SubCat];
                            if (SubList) {
                                for (var i = 0; i < SubList.length; i++) {
                                    //$("#selPARPlant").append("<option value='" + SubCat + SubList[i] + "'>" + SubList[i] + "</option>");
                                    $("#selPARPlant").append("<option label='" + SubList[i] + "' value='" + SubList[i] + "'>" + SubCat + SubList[i] + "</option>");
                                }
                            }
                        }
                        $("#selPARPlant").addClass("fullwidth");

                        $("#txtPARSubCat").val($("#selPARSubCat").val());

                        if ($("#selPARPlant option").length > 1) {
                            $("#selPARPlant").closest("td").show();
                            $("#selPARPlant").addClass("required");
                        } else {
                            $("#selPARPlant").closest("td").hide();
                            $("#selPARPlant").removeClass("required");
                            $("#selPARPlant").removeClass("requiredInput");
                        }
                    });

                    $("#selPARPlant").bind("change", function () {
                        $("#txtPARPlant").val($("#selPARPlant").val());
                    });

                }
                catch (err) {
                    alert("loadForm: if GroupDocList>0: bind Group Change:" + err);
                }
            }
        }
        catch (err) {
            alert("loadForm: if GroupDocList>0: " + err);
        }