jQuery UI使用json文件自动完成
jQuery UI autocomplete with json file
我的自动完成输入字段不起作用,我找不到原因。我使用的是一个外部JSON文件,它看起来像:
{
"nodes": [
{"id": "nt", "data": {
"class": "date",
"label": "Expositions New Tendencies",
"tooltip": "New Tendencies Exhibition",
"content": "Ceci est une visualisation de donnée concernant les différentes expositions sous le nom de 'New Tendencies', et regroupe les différents artistes, et leurs oeuvres. Pour parcourir la visualisation, cliquez sur les différents noeuds !",
"graphicFillColor": "#fff",
"graphicSize": 80,
"labelFontSize": 18,
"labelFontWeight": "regular",
"labelPosition": "right"
}}],
"edges": [
{"source": "nt1", "target": "AdrianMarc"}
]}
所以为了清晰起见,我选择了一个多维数组。这是我的自动完成的JavaScript文件
$(function() {
$('#recherche').autocomplete({
source: function (request, response) {
$.ajax({
url: "feature-tour.json",
dataType: 'json',
data: request,
success: function( data ) {
response( $.map( data, function( item ) {
console.log(item.nodes.id);
return(item.nodes.id)
}));
}
});
},
minLength: 0
});
});
和HTML输入:
<input type="text" id="recherche" placeholder="→ Rechercher un artiste"/>
如果有人能帮助我访问节点的标签,我想在自动完成输入中显示节点的标签。非常感谢。
-
您的节点在文件中公开为
nodes
密钥,因此您应该迭代data.nodes
,而不是data
:success: function(data) { var filtered = $.map(data.nodes, function(item) { // ... }); response(filtered); }
-
您可能希望为
response
回调提供一个具有label
和value
属性的对象数组:success: function(data) { var filtered = $.map(data.nodes, function(item) { return { label: item.data.label, value: item.id }; }); response(filtered); }
-
不要忘记,在调用回调之前,您必须自己在服务器端或客户端进行筛选。下面是一个标签必须包含查询(不区分大小写)的示例
success: function(data) { var query = request.term.toLowerCase(), filtered; filtered = $.grep(data.nodes, function(item) { return item.data.label.toLowerCase().indexOf(query) !==-1 ; }); filtered = $.map(filtered, function(item) { return { label: item.data.label, value: item.id }; }); response(filtered); }
还有一个演示http://jsfiddle.net/fh93xue4/2/
相关文章:
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- jQuery UI使用json文件自动完成
- jquery ui分发文件
- 如何使用AngularJS和ui-router从Laravel 5.1获取下载文件
- 在 Windows 现代(地铁)UI 应用中存储图像文件和音频文件的方法是什么?
- Kendo Ui CSS和JS文件要求
- 如何使用ian:accounts-ui-botstrap-3根据Meteor中的用户输入设置配置文件字段值
- 具有输入类型文件字段的语义UI重置表单
- 在phonegap android中上传多个文件时,使用jquery ui显示进度条
- 正在将材质UI组件收集到一个文件中
- ng模板,带有ui.router,单独的文件
- 如何在一次调用中使用jquery从外部文件中获取多个剑道ui模板
- JQuery UI使用PHP文件源自动完成
- jQuery UI:指定国际化文件的位置
- 如何在 AngularJS UI 路由器中从bower_component加载文件
- 文件类型的剑道 UI 图像上传限制不起作用
- 如何将指向UI路由器版本化文件的链接替换为Usemin
- 如果我只想在我的应用程序中使用表单生成器,则 Alloy UI 的 zip 文件中要包含哪些文件夹
- 在 ui-router 配置文件中使用 angular-translate 的 $translate.use()
- 如何从iOS UI Automation JavaScript对外部jar文件进行API调用