是否有可能有JQuery的自动完成工作,而无需使用传统的ID,标签,值?
举例来说,我不希望使用:
[ { "id": "Botaurus stellaris", "label": "Great Bittern", "value": "Great Bittern" },
{ "id": "Asio flammeus", "label": "Short-eared Owl", "value": "Short-eared Owl" }]
反而:
[ { "my_id": "Botaurus stellaris", "first_name": "Great Bittern", "last_name": "Great Bittern" },
{ "my_id": "Asio flammeus", "first_name": "Short-eared Owl", "last_name": "Short-eared Owl" }]
于是想,什么JQuery autocomplete
一般需要id,value,label
,我可以把它拿my_id, first_name, last_name
,让jQuery的自动完成像对待相同的id,label,value
?
这可能是有用的,我不希望修改数据的密钥从一个数据源的到来,并将其显示在JQuery的自动完成。
没关系,
发现从jQueryUI的的自动完成功能的示例源的答案:
$( "#city" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: "http://ws.geonames.org/searchJSON",
dataType: "jsonp",
data: {
featureClass: "P",
style: "full",
maxRows: 12,
name_startsWith: request.term
},
success: function( data ) {
response( $.map( data.geonames, function( item ) {
return {
label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
value: item.name
}
}));
}
});
},
minLength: 2
});
这里, source
被分配了一个功能,即可以转换并返回需要被转换成JQuery的自动完成的任何类型的钥匙id,value,label
。
可能是它可以帮助一些。
这里有一个更好的解决方案。 它甚至记录了jQuery UI的网站上。
http://jqueryui.com/demos/autocomplete/#custom-data
$("input").autocomplete({..})
.data( "autocomplete" )._renderItem = function( ul, item ) {return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>" + item.label + "<br>" + item.desc + "</a>" )
.appendTo( ul );
};