Ron*_*ald 43 javascript ajax jquery
我收到此错误,它来自jquery框架.当我尝试在文档准备好时加载选择列表时,我收到此错误.我似乎无法找到为什么我得到这个错误.
它适用于更改事件,但我在尝试手动执行该函数时收到错误.
未捕获的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");
}
});
}
Run Code Online (Sandbox Code Playgroud)
Ror*_*san 40
当你调用loadTeachers()
DOMReady时,上下文this
将不是#CourseSelect
元素.
您可以通过在加载DOM change()
的#CourseSelect
元素上触发事件来解决此问题:
$("#CourseSelect").change(loadTeachers).change(); // or .trigger('change');
Run Code Online (Sandbox Code Playgroud)
或者可以$.proxy
用来改变函数运行的上下文:
$("#CourseSelect").change(loadTeachers);
$.proxy(loadTeachers, $('#CourseSelect'))();
Run Code Online (Sandbox Code Playgroud)
或者上面的香草JS等价物bind()
:
$("#CourseSelect").change(loadTeachers);
loadTeachers.bind($('#CourseSelect'));
Run Code Online (Sandbox Code Playgroud)
len*_*ard 18
我有同样的问题,我试图在一些选择上听取更改,实际上问题是我使用事件而不是event.target这是选择对象.
不正确:
$(document).on('change', $("select"), function(el) {
console.log($(el).val());
});
Run Code Online (Sandbox Code Playgroud)
正确:
$(document).on('change', $("select"), function(el) {
console.log($(el.target).val());
});
Run Code Online (Sandbox Code Playgroud)
$(this).val()
当您访问时,当它被更改事件this
指向调用者调用时,它会导致错误CourseSelect
,即它正在工作并且将获取 的值CourseSelect
。但当你手动调用它时,它this
会指向文档。因此,您要么必须传递CourseSelect
对象,要么直接访问,$("#CourseSelect").val()
而不是$(this).val()
.
这对我有用!!!
调用不带参数的函数
$("#CourseSelect").change(function(e1) {
loadTeachers();
});
Run Code Online (Sandbox Code Playgroud)
调用带参数的函数
$("#CourseSelect").change(function(e1) {
loadTeachers($(e1.target).val());
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
159995 次 |
最近记录: |