【发布时间】:2016-05-29 03:49:57
【问题描述】:
我正在尝试使用外部 Json 作为自动完成 Jquery UI 插件的源代码:http://jqueryui.com/autocomplete/
这段代码运行良好:
var availableTags = ["aberdeen","aberystwyth","aberystwyth juniors"]
$( "#enter-your-parkrun" ).autocomplete({
open: function(e) {
var results = $.ui.autocomplete.filter(availableTags, e.term);
response(results);
valid = false;
},
select: function(e){
valid = true;
},
close: function(e){
if (!valid) $(this).val('');
},
source: availableTags,
});
$("#enter-your-parkrun").change(function(){
if (availableTags.indexOf($(this).val()) == -1){
$(this).val("");
}
});
但由于我有近 800 个值,我需要使用外部源。我尝试了不同的方法,但我找不到让它发挥作用的方法:
$( "#enter-your-parkrun" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: "http://tribesports.com/pages/parkrun-event-list",
dataType: "jsonp",
data: {
q: request.term
},
success: function( data ) {
response( data );
}
});
},
minLength: 2,
delay: 400,
});
我不确定 q: request.term 应该是什么以及是否应该解析数据?我还需要添加验证以确保只能接受列表中的值,它适用于我的第一个示例,不太确定如何将其传输到我的第二个代码。
谢谢
【问题讨论】:
-
那个服务器不支持 JSONP 是问题。
-
您是否收到来自外部来源的响应..?它看起来怎样..? “我还需要添加验证以确保只能接受列表中的值” - 什么列表..?
availableTags..?如果您只接受那些为什么要发送外部请求..?如果没有,您如何将availableTags中的数据与来自外部源的响应联系起来......?
标签: javascript jquery json jquery-ui autocomplete