我尝试在mvc项目中使用jqueryUI自动完成。我看一下控制台,发现当在自动完成输入中写入字符时,我得到所有数据,但这些数据不会在输入中显示。如何解决这个问题? / p>
$('#Departure').autocomplete({
source: '@Url.Action("GetCityAndAirport", "Flight", "CityAndAirports")'
});
答案 0 :(得分:1)
根据documentation或设置函数,你应该传递一个数组来自动编译source
。您可以在服务器端更改数据,也可以仅在客户端选择阵列。
在您的情况下更改服务器端更容易,更清洁。回应应该是这样的:
[ "Choice1", "Choice2" ]
不会强>
{ obj: [ "Choice1", "Choice2" ]}
答案 1 :(得分:0)
根据http://api.jqueryui.com/autocomplete/#option-source,从服务器返回的响应可以是:
[ "Choice1", "Choice2" ]
[ { label: "Choice1", value: "value1" }, ... ]
但看起来服务器正在将数组包装在一个对象中。
如果服务器可以返回:["Value 1", "Value 2"]
而不是{"obj": ["Value 1", "Value 2"]}
,您应该会看到结果。
修改强>
另一种选择是使用源选项的function
形式并处理响应:
$('.selector').autocomplete({
source: function( request, response ) {
$.getJSON('url', { term: request.term }, function( data ) {
response( data.obj );
});
}
});