我正在嘗試顯示經理列表的自動完成結果。我有以下代碼:JQuery-Ui自動完成結果不顯示結果
的application.js
function log(message) {
$("<div/>").text(message).prependTo("#log");
}
$("#managers").autocomplete({
source : function(request, response) {
$.ajax({
url : "/managerlist",
dataType : "json",
data : {
style : "full",
maxRows : 12,
term : request.term
},
success : function(data) {
var results = [];
$.each(data, function(i, item) {
var itemToAdd = {
value : item,
label : item
};
results.push(itemToAdd);
});
return response(results);
}
});
}
});
項目控制器
def manager_list
list=Project.all.map{|i|i.manager_user_id}
arr= [].concat(list.sort{|a,b| a[0]<=>b[0]}).to_json
render :json =>arr
end
的routes.rb
match '/managerlist' => 'projects#manager_user_id'
_form.html.erb
<p>
<%= f.label :manager_user_id %><br />
<input id="managers" />
</p>
下面的代碼是好的,我不螢火收到任何錯誤。但是,當我嘗試輸入經理姓名例如詹姆斯約翰遜的名字不會出現。我也嘗試將整個函數放在_form.html.erb中,並將其封裝在標籤中,這不起作用。是否有任何想法,爲什麼發生這種情況
所以我設法解決我的錯誤,這是因爲JQuery核心和JQuery UI的訂購。
我有經理人列出。在下面的圖片中。
從圖像中可以看出,當我鍵入「ARM」它帶給管理者的整個列表,當它應該顯示「德肖恩 - 阿姆斯特朗。我明白,這是最有可能與我的項目控制器做以下
項目控制器
def manager_list
list=Project.all.map{|i|i.manager_user_id}
arr= [].concat(list.sort{|a,b| a[0]<=>b[0]}).to_json
render :json =>arr
end
@Djj它提示您下載?它應該顯示在瀏覽器的頁面上。但是,如果「ajax」一切正常,仔細看看成功功能。而且,控制檯中顯示的是什麼'autocomplete'功能? –
@Djj是的,您必須確保在調用自動完成之前加載jquery核心和jquery ui js文件。看看Firebug的'Net'面板。它會告訴你什麼和什麼時候裝載。 –
@Djj很好,很高興你發現了這個問題。編輯我的答案。 –