Jquery 자동 완성을 사용하면 처음 세 글자를 입력 할 때 모든 관리자의 전체 목록을 얻을 수 있습니다. 내 프로젝트 컨트롤러에서 다음 코드를 가지고있다.목록 하나의 레코드 자동 완성
def project_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
나는 잘못했다. 내가에만 표시 'Deshawn 암스트롱'해야한다 '암'에 입력 대신 내가 전체 목록
를 표시되고 있어요 위의 그림에서 Application.jsfunction log(message) {
$("<div/>").text(message).prependTo("#log");
}
$("#tags").autocomplete({
minLength: 2,
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);
}
});
}
});
편집 됨 :
<p>
<%= f.label :project_name %><br />
<%= f.text_field :project_name %>
</p>
<p>
<%= f.label :manager_user_id %><br />
<%= f.text_field :manager_user_id, :id => "term"%>
</p>
위의 manger 목록 페이지는 다음과 같습니다. t는 양식을 포함합니다. 당신이 나에게 설명했던 것에서, 나는 위에서 한 것처럼 페이지에 var '용어'를 넣어야한다고 생각하고 있습니까?
에 의해 필터링 된 값을 포함 할 만합니다. 기간. maxRows 이후에 배치했습니다. 맞지? – David
@Djj'request.term'은 url : 매개 변수로'url : "/ managerlist"'로 보내집니다. '/ managerlist' 페이지에서 autocomplete로 보내지는 레코드를 정렬합니다. 지금은 아무 것도하지 않습니다. –
자바 스크립트를 처음 사용하는 경우 어떻게해야합니까? jquery Ui 웹 사이트에서 자동 완성을 수행하고이를 적용했습니다. 이것이 내가 혼란스럽게 생각하는 유일한 부분입니다. – David