Dis*_*ile 12 javascript jquery response
我在另一篇SO帖子中看到了这段代码:使用ASP MVC的jQuery UI Autocomplete
$("#CustomerID").autocomplete({
source: function(request, response) {
$.ajax({
type: "POST",
url: "/customer/search",
dataType: "json",
data: {
term: request.term
},
error: function(xhr, textStatus, errorThrown) {
alert('Error: ' + xhr.responseText);
},
success: function(data) {
response($.map(data, function(c) {
return {
label: c.Company,
value: c.ID
}
}));
}
});
},
minLength: 2,
select: function(event, ui) {
alert('Select');
}
});
Run Code Online (Sandbox Code Playgroud)
除了成功功能,我理解一切.我知道map正在采用数组并将每个值映射到具有label和value属性并返回新数组的新对象,但我不确定response()的作用.
Dav*_*ers 16
这个名为response的对象是一个回调函数,它通过自动完成方法传递给标记为source的函数.
第三种变体即回调提供了最大的灵活性,可用于将任何数据源连接到自动完成.回调有两个参数:
一个请求对象,具有一个名为"term"的属性,它引用当前文本输入中的值.例如,当用户在城市字段中输入"new yo"时,自动完成术语将等于"new yo".
一个响应回调,它要求一个参数包含要向用户建议的数据.应根据提供的术语过滤此数据,并且可以采用上述任何简单本地数据格式(String-Array或具有标签/值/两者属性的Object-Array).在提供自定义源回调以处理请求期间的错误时,这很重要.即使遇到错误,也必须始终调用响应回调.这可确保窗口小部件始终具有正确的状态.