$(function() {
$('.autocomplete_address').autocomplete({
minLength: 0,
delay: 600,
source: function(request, response) {
$.ajax({
url: "/welcome.js",
dataType: "json",
data: {search: request.search},
success: function( data ) {
var data_obj = jQuery.each(data,function(i, key) {
});
response( $.map(data_obj, function( item ) {
return {
label: item.area,
value: item.area
}
}));
}
});
}
});
});
使用jquery-ui-186 的自动填充功能
自动完成部分有效但是对于输入的任何数据显示相同的结果
在服务器端代码如下所示:
class WelcomeController < ApplicationController
def index
@area = Address.search params[:search]
@area = @area.as_json(:include => :state)
@area = @area.to_json
respond_to do |format|
format.html
format.js {render :json => @area}
end
end
end
我哪里错了!!!!!! 非常感谢任何帮助。
答案 0 :(得分:1)
request
对象具有term
属性,而不是search
属性。更新您的AJAX电话:
/*Snip */
data: { search: request.term },
/*Snip */
答案 1 :(得分:0)
更新:来自文档:
success: function( data ) {
response( $.map( data.geonames, function( item ) {
return {
label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
value: item.name
}
}));
}
所以你的看起来可能是这样的:
success: function( data ) {
response( $.map(data_obj, function( item ) {
return {
label: item.area,
value: item.area
}
});
}
看起来你实际上并没有对.each()的结果做任何事情。