2011-12-08 1 views
0
$("#Auto").autocomplete({ 
minLength: 4, 
type: 'GET', 
source: function (request, response) { 
    var term = request.term; 
    if (term in cache) { 
     response(cache[term]); 
     return; 
    } 
    var url = '<%=Url.Action("AutoComplete", "Thing", new {area = "Admin"}) %>' + "?terms=" + request.term; 
    lastXhr = $.getJSON(url, request, function (data, status, xhr) { 
     cache[term] = data; 
     if (xhr === lastXhr) { 
      response(data); 
     } 
    }); 
} 
}) 
    .data("autocomplete")._renderItem = function (ul, item) { 
      return $("<li></li>") 
.data("item.autocomplete", item) 
    .append("<a> Thingy1: " + item.Prop1 + " Thingy2: " + item.Prop2 + "<br>" + "</a>") 
    .appendTo(ul); 
     }; 

뭐가 문제. 이것은 또 다른 페이지에서 작업을 수행하지만, 어떤 이유로 나는 페이지에이 오류를 얻을 :#Auto, Prop1 및 Prop2이 존재하고 살아라라는 컨트롤러가있는 가정이 자동 완성 코드 (JQuery와 - UI 자동 완성)

$("#Auto").autocomplete({minLength: 4, type: "GET", source: function (request, response);var term = request.term;if (term in cache) {response(cache[term]);return;}var url = '<%=Url.Action("AutoComplete", "Thing", new {area = "Admin"}) %>' + "?terms=" + request.term;lastXhr = $.getJSON(url, request, function (data, status, xhr) {cache[term] = data;if (xhr === lastXhr) {response(data);}});}}).data("autocomplete") is undefined 

나는 다음과 같은 파일을로드 한 :

jquery-ui-1.8.2.custom.min.js 
jquery-1.4.2.min.js 
jquery.autocomplete.pack.js 
jquery.ajaxQueue.js 
jquery.bgiframe.min.js 
thickbox-compressed.js 
jquery-ui-1.8.2.custom.css 
jquery-require.1.1.packed.js 

플러스 다른 사용자 정의 물건을.

누락 된 것이 있거나 너무 많은 파일이 포함되어 있습니까?

답변

1

우선, 코드 붙여 넣기 (느슨하게 잘라 내기 & 붙여 넣기)를 수행하고 무엇을하려고하는지 설명하면 도움이됩니다.

그러나, 나는 당신의 오류를 볼 수 있습니다 첫눈에 말한다 :

.DATA ("자동 완성") 정의되지

"자동 완성"라는 어떤 요소가에 존재하지 않는 것을 의미하는 것이다 페이지. 나중에 사용하기 위해 자동 완성 컨트롤에 포함 된 데이터를 저장하려는 경우

.data("#Auto")

.data("autocomplete")

을 변경해보십시오 .

+0

.data ("autocomplete")는이 클래스가있는 요소를 인식합니다. ui-autocomplete-input? – tehdoommarine

+0

아니요.'("autocomplete")'는 요소를 찾을 선택자입니다. 그 클래스를 원한다면'('.ui-autocomplete-input')'을 사용해야하지만, 그것이 당신이 원하는 것일지는 확실하지 않습니다. 당신은 무엇을하려하는지 비 프로그래밍 언어로 먼저 설명해야합니다. – Terry

+0

기본 jQuery 선택기에 대한 내 설명을 찾을 수 있습니다 [여기] (http://stackoverflow.com/questions/7664384/whats-the-difference-in-jquery-selectors/7664407#7664407) – Terry

0

테리의 반응이 틀렸습니다. 귀하의 코드는 요소 선택자가 아닙니다. data 함수는 HTML 요소에 링크 된 데이터 객체를 검색하는 데 사용됩니다. 귀하의 경우, id가 Auto 인 요소에 연결된 데이터를 검색하고 있습니다.

var data = $("#Auto").data("autocomplete"); 
// data is now an object stored by the autocomplete plugin. 

키가 autocomplete 인 데이터가 없음을 나타냅니다. 귀하의 자동 완성 스크립트가 자신의 업무를 수행하지 않는 한 어떻게 될지 잘 모르겠습니다.