我是一个jQuery新手,并试图与jQuery typewatch一起实现自动完成功能。也就是说,要在一段时间后从网络服务获取数据,比如750毫秒,而不是在minLength之后。
<script type="text/javascript">
$(document).ready(function () {
$('.searchinput').autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/Services/SampleWebService.asmx/GetProduct",
data: '{"searchString":"' + request.term + '"}',
dataType: "json",
async: true,
success: function (data) {
response(data);
}
});
},
});
$('.searchinput').typewatch({
callback: $.autocomplete,
wait: 750,
highlight: false
});
});
我的自动完成功能完全正常,但不知怎的,我无法将typewatch的内容包括在内。我确信有一个严重的编码失败,我不知道。
由于
答案 0 :(得分:3)
jquery autocomplete将此选项作为参数调用delay:
http://api.jqueryui.com/autocomplete/#option-delay
所以你要做的就是改变那个参数,并将typewatch删除为:
$(document).ready(function () {
$('.searchinput').autocomplete({
delay:750,
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/Services/SampleWebService.asmx/GetProduct",
data: '{"searchString":"' + request.term + '"}',
dataType: "json",
async: true,
success: function (data) {
response(data);
}
});
},
});
});
答案 1 :(得分:0)
名为“延迟”的参数是您必须等待更长时间才能调用外部服务的时间。这只是为了不过载没有“敏感”搜索数据的服务。
我从用户提问中了解到,他希望每750毫秒调用一次自动完成“更新”功能。
您可以使用以下方法更改typewatch“段”:
$('.searchinput').typewatch({
callback: function(){
$(".searchinput").data("autocomplete").search();
},
wait: 750,
highlight: false
});
这将触发搜索服务并每750毫秒显示一次弹出响应