好吧,我一直在为此绞尽脑汁(这太糟糕了),但是我一直尝试阅读我所能而且仍然无法使它起作用的内容。
试图用jQuery UI做自动完成
我的json看起来像这样
{"dealers":
{
"1156":"dealer 1",
"1122":"dealer 2",
"1176":"dealer 3",
"1491":"dealer 4",
"1463":"dealer 5",
"269":"dealer 6"
}
}
我正在尝试将此信息用作自动完成的来源。我得到的响应对象很好,我很难以正确的格式获得它,因此我可以将“
尝试了一百万种不同的方法,但最近的尝试却在下面
function ajaxCall() {
$.getJSON("/example/location/example.json?term=" + $('#dealerName').val(),
function(data) {
$.each(data.dealers, function(k, v) {
alert(k + ' : ' + v);
});
});
}
$('#dealerName').autocomplete({
source: ajaxCall,
minLength: 2,
delay: 100
});
请多谢!
您需要将要返回的对象转换为jQueryUI期望的格式的数组。
您可以$.map
用来将dealers
对象转换为该数组。
$('#dealerName').autocomplete({
source: function (request, response) {
$.getJSON("/example/location/example.json?term=" + request.term, function (data) {
response($.map(data.dealers, function (value, key) {
return {
label: value,
value: key
};
}));
});
},
minLength: 2,
delay: 100
});
请注意,当您选择一个项目时,“键”将放置在文本框中。您可以通过调整回调函数返回的label
和value
属性来更改此设置$.map
。
另外,如果您有权访问生成JSON的服务器端代码,则可以更改返回数据的方式。只要数据:
label
属性,value
属性或两者兼有的对象的数组,或者换句话说,如果可以这样格式化数据:
[{ value: "1463", label: "dealer 5"}, { value: "269", label: "dealer 6" }]
或这个:
["dealer 5", "dealer 6"]
然后,您的JavaScript变得更加简单:
$('#dealerName').autocomplete({
source: "/example/location/example.json"
});
问题内容: 想象一个具有以下数据的json文件: 我希望使用jQuery的自动完成方法,能够将 颜色 显示为选项,以选择并在输入上插入 值 。 以上不需要介绍。用于选择颜色,具有 颜色 值和具有 值 value的选择器。 编辑: 我有此JSON数据: 和这个HTML: 而这个jQuery: 我遵循安德鲁的回答,它提示我选择数据,但是如果我发出警报和变量,它会显示“未定义”。我想念什么? Edit2
问题内容: 我已经看到许多有关通过JSON传递带有标签和值属性的数组的问题,但关于传递字符串的问题并不多。我的问题是我似乎无法填写自动填充内容。我运行了一个转储函数,并通过JSON将这些样本值传递给自动完成功能: 这是一些代码: 这是fill_id.php: 我的自动完成功能保持空白。如何更改JSON数组以填充它?还是我的ajax成功函数中包含什么? 问题答案: 您可以非常坚持jQueryUI的自
问题内容: 也许您可以解决一些Ajax问题。 我有AUTO COMPLETE代码-我输入城市名称,该代码会自动为我完成城市名称,还获取城市ID,并应将其放入隐藏的输入字段中(名称=“ cityID”)…但它没有做到这一点。 你能告诉我为什么吗? html代码: 服务器端(仅输出): 脚本: 您可以在这里找到完整的JS: 问题答案: 尝试对ajax_response_city使用div而不是span
我已经使用Spring Data Solr索引了一个位置数据库。我有以下字段: 我试图实现一个自动完成功能。我的ajax调用由一个控制器处理,该控制器调用一个存储库: 这适用于像“加利福尼亚”或“洛杉矶”这样的搜索。但是当我尝试像“洛杉矶”这样的多个单词时,我会得到一个例外: 严重:Servlet。路径为[/xxx]的上下文中servlet[spring mvc]的服务()引发异常[请求处理失败;
问题内容: 即时通讯在JSON中获取响应,但这不会解析JSON响应。我在做什么错?我在doc http://docs.jquery.com/Plugins/Autocomplete上找不到任何内容 问题答案: 检查dataType和parse选项。
问题内容: 我发现Oleg提供了一个非常不错的演示(http://www.ok-soft- gmbh.com/jqGrid/FillToolbarSearchFilter.htm),该演示显示了“使用本地数据自动完成的jqGrid工具栏搜索”,但是很难使它起作用通过ajax获取json 即使我在加载后强制将网格置于本地,也有充分的理由为什么自动完成功能不起作用? 问题答案: 如果使用jQuery