将JSON分配给自动完成
Assign JSON to autocomplete
我有从我的服务返回的实际JSON对象的以下字符串表示:
[
{
"label": "#1 Pizza [99999]",
"value": "99999"
},
{
"label": "001 Test Facility [99998]",
"value": "99998"
}
]
我正在尝试将其放入jQuery自动完成中。但我不清楚为什么我没有看到该控件中的数据。
我已经到处找过了,还问过其他问题。我已经为此工作了好几天了,我离得很近,所以请帮忙。。。。
这是我的标记/脚本
<script type="text/javascript">
function processFacilities(data) {
response($.map(data, function (value, key) {
alert(data);
return {
label: value,
value: key
};
}));
};
$('#tags').autocomplete({
source: function (request, response) {
$.getJSON('FacilitiesAsync', 'sourceDb=myDb', processFacilities);
},
minLength: 2,
delay: 100
});
</script>
我的类正在返回标签和值,正如我从下面的帖子中看到的那样。这里的不同之处在于,我的JSON数据前面没有用于识别它的东西,例如:["facilities":{etc..}]
jQuery UI使用JSON 自动完成
这是我的实现,它工作得很好。。。
$("#autocomplete").autocomplete({
source: function (request, response) {
$.ajax({
url: "/api/controller/",
type: 'GET',
cache: false,
data: request,
dataType: 'json',
success: function (json) {
// call autocomplete callback method with results
response($.map(json, function (name) {
return {
label: name.Name,
value: name.ID
};
}));
},
error: function (xmlHttpRequest, textStatus, errorThrown) {
$("#autocomplete").text(textStatus + ', ' + errorThrown);
}
});
},
select: function (event, ui) {
$('#autocomplete').val(ui.item.label);
$('#selectedLocationId').val(ui.item.value);
return false;
},
messages: {
noResults: '',
results: function () {
}
}
});
要将其翻译为您的版本。。。
$("#autocomplete").autocomplete({
source: function (request, response) {
$.ajax({
url: "FacilitiesAsync/",
type: 'GET',
cache: false,
data: request,
dataType: 'json',
success: function (json) {
// call autocomplete callback method with results
response($.map(json, function (name) {
return {
label: name.Name,
value: name.ID
};
}));
},
error: function (xmlHttpRequest, textStatus, errorThrown) {
$("#autocomplete").text(textStatus + ', ' + errorThrown);
}
});
},
select: function (event, ui) {
$('#autocomplete').val(ui.item.label);
return false;
},
messages: {
noResults: '',
results: function () {
}
}
});
这应该有效:
$('#tags').autocomplete({
source: "/path/to/script",
minLength: 2,
delay: 100
});
当源选项为字符串时:
字符串:当使用字符串时,自动完成插件希望字符串,指向将返回JSON数据的URL资源。它可以位于同一主机或不同主机上(必须提供JSONP)。这个自动完成插件不过滤结果,而是一个查询字符串添加了一个术语字段,服务器端脚本应该用于筛选结果。例如,如果源选项为设置为
http://example.com
,用户键入foo,一个GET请求将被制成CCD_ 2。数据本身可以是以与上述本地数据相同的格式。
相关文章:
- 在循环中分配json值时,值被覆盖
- 如何通过解析JSON文件来分配JavaScript变量
- 如何将HTML表单(JSON格式)中的数据分配给变量
- 使用mysql为JSON php数组分配多个列值
- 将变量的值分配给我的对象标识符 JSON
- 无法根据元素的名称将JSON值分配给元素
- 在PHP中为JSON对象分配标识符/名称
- 将JSON分配给自动完成
- JSON 数据的分配无效
- JSON 树和内存分配
- jquery $.getJSON 的 JSON 数据是否可以分配给其他变量
- JSON - 访问 JSON 数组并分配变量
- 如何从本地系统加载 JSON 文件并分配给某个变量
- 使用javascript在JSON上未正确分配URL
- 分配来自MVC 4控制器操作的json值的有效方法是什么
- React/Rect Native无法将JSON数据分配给状态变量
- 为CanvasXpress的Json对象分配Javascript数组值
- 访问$.ajax语句中分配的JSON时出现问题
- 将JSON值分配给位于JavaScript函数外部的变量
- 通过AJAX调用将返回的JSON分配给本地存储