我在json中获得响应,但这不会解析json响应。我做错了什么?我无法在文档http://docs.jquery.com/Plugins/Autocomplete
上找到任何内容$("#users-allowed").autocomplete("/people/following.json", {
width: 320,
//max: 4,
highlight: false,
scroll: true,
scrollHeight: 300,
formatItem: function(response, i, max) {
console.log(response);
console.log(response['items']);
console.log(response.items);
return i + "/" + max + ": \"" + response.status_code + "\" [" + response.status_description + "]";
//return "<img src='images/" + value + "'/> " + value.split(".")[0];
},
formatResult: function(response) {
//return value.split(".")[0];
return response.status_description;
}
});
答案 0 :(得分:33)
$("#users-allowed").autocomplete("/people/following.json", {
width: 320,
dataType: 'json',
highlight: false,
scroll: true,
scrollHeight: 300,
parse: function(data) {
var array = new Array();
for(var i=0;i<data.items.length;i++) {
array[array.length] = { data: data.items[i], value: data.items[i], result: data.items[i].username };
}
return array;
},
formatItem: function(row) {
var name = '';
if (row.first_name && row.last_name)
name = '('+row.first_name+', '+row.last_name+')';
else if (row.first_name)
name = '('+row.first_name+')';
else if (row.last_name)
name = '('+row.last_name+')';
return row.username+' '+name;
}
});
检查dataType和解析选项。
答案 1 :(得分:6)
我认为您只需要输入dataType
选项,我记得您已准备好在自动填充程序中使用$.ajax
的任何选项:
$("#users-allowed").autocomplete("/people/following.json", {
dataType: "json",
...
答案 2 :(得分:1)
尝试声明$(document).ready(..)
例如:
var acCbo = {
minChars: 1,
delay:500,
max: 100,
width: 400,
dataType: 'json', // this parameter is currently unused
extraParams: {
format: 'json', //pass the required context to the Zend Controller,
filtro: 'id_procsianv,id_atividade',
chave: function(){
return $('#id_procsianv').val()+','+$('#id_atividade').val();
}
},
queryParam: "descricao",
parse: function(data) {
if (data['qtde']>0){
data = data['Cbo'];
var parsed = [];
for (var i = 0; i < data.length; i++) {
parsed[parsed.length] = {
data: data[i],
value: data[i].id_cbo,
result: $('<textarea/>').html(data[i].no_cbo).val()
};
}
return parsed;
}else{
$('#id_cbo').val('');
return [];
}
},
formatItem: function(item) {
return item.no_cbo+ ' (' +item.id_cbo+ ')';
}
};
$(document).ready(function(){
$('#cbo').autocomplete('/cbos/index',acCbo)
.result(function(e,data){
$('#id_cbo').val(data.id_cbo);
});
});