我试图让一些 jQuery 函数更容易实现,因此我尝试将一些自动完成逻辑封装到一个函数中,以允许用户发送 URL 的变量、Web 服务的参数和值的控件我们需要采取。使用以下脚本,我收到错误:response is not defined
. 这个想法是,在这个 Web 服务中会有许多不同的方法具有自动完成功能,我可以简单地将适当的方法的名称及其参数传递给Complete
方法,并在多个文本框上具有功能。
为什么会这样
$(document).ready(function ()
{
$('#auto').autocomplete(
{
source: function (request, response)
{
Complete('GetNames', 'hospitalName', '#auto');
}
});
function Complete(url, varName, target)
{
$.ajax(
{
type: "POST",
url: "Service.asmx/" + url,
data: "{'" + varName + "':'" + $(target).val() + "'}",
dataType: "json",
contentType: "application/json",
success: function (data)
{
//uncaught reference error response is not defined
response(data.d);
},
error: function (xhr)
{
console.log(xhr.status);
}
});
}
});
在我尝试取出 AJAX 调用并使其成为自己的方法之前,这工作正常。我想知道
- 源函数正在调用 Complete 函数,而源函数具有
request
和response
作为参数,那么为什么它们在我的脚本中未定义? - 我该如何解决这个问题并避免#1中的未来问题。