小编典典

未捕获的TypeError:无法读取未定义的属性“ toLowerCase”

ajax

我收到此错误,它源自jquery框架。当我尝试在文档准备好加载选择列表时,出现此错误。我似乎找不到我为什么收到此错误的信息。

它适用于change事件,但是尝试手动执行功能时出现错误。

未捕获的TypeError:无法读取未定义的属性’toLowerCase’-> jquery-2.1.1.js:7300

这是代码

$(document).ready(function() {
    $("#CourseSelect").change(loadTeachers);
    loadTeachers();
});

function loadTeachers() {
    $.ajax({ 
        type: 'GET', 
        url: '/Manage/getTeachers/' + $(this).val(), 
        dataType: 'json', 
        cache: false,
        success:function(data) { 
            $('#TeacherSelect').get(0).options.length = 0;    
            $.each(data, function(i, teacher) {
                var option = $('<option />');
                option.val(teacher.employeeId);
                option.text(teacher.name);
                $('#TeacherSelect').append(option);
            });
        },         
        error: function() { 
            alert("Error while getting results"); 
        }
    });
}

阅读 411

收藏
2020-07-26

共1个答案

小编典典

当您调用loadTeachers()DOMReady时,的上下文this将不是#CourseSelect元素。

您可以通过在DOM加载时触发元素上的change()事件来解决此问题#CourseSelect

$("#CourseSelect").change(loadTeachers).change(); // or .trigger('change');

或者可以使用$.proxy更改上下文来运行该函数:

$("#CourseSelect").change(loadTeachers);
$.proxy(loadTeachers, $('#CourseSelect'))();

或以上的等效JS bind()

$("#CourseSelect").change(loadTeachers);
loadTeachers.bind($('#CourseSelect'));
2020-07-26