2015-01-02 2 views
1

jquery 자동 완성을 검색 텍스트 상자에 추가하려고하는데 어떤 이유로 작동하지 않습니다. 내가 필요한 모든 jquery로드 및 버전 차이가없는 것 같습니다. 나는 (적어도 내가 찾은 것 중 하나를 시도한) 모든 해결책을 시도했지만 그 중 누구도 일하지 못했습니다.jQuery 자동 완성 - 알려지지 않은 유형 오류 : undefined가 함수가 아닙니다.

내 HTML :

<input type="search" name="searchTerm" 
data-test-autocomplete="@Url.Action("AutoComplete")" /> 

내 JS :

$(function() { 
    var createAutoComplete = function() { 
    var $input = $(this); 

    var options = { 
     source: $input.attr("data-test-autocomplete") 
    }; 

    $input.autocomplete(options); 
    }; 


    $("input[data-test-autocomplete]").each(createAutoComplete); 

}); 

번들이 신체의 끝 부분에 _Layout.cshtml 내에서 호출되는 :

bundles.Add(new ScriptBundle("~/bundles/test").Include(
       "~/Scripts/jquery-{version}.js", 
       "~/Scripts/jquery-ui-{version}.js", 
       "~/Scripts/jquery.unobtrusive*", 
       "~/Scripts/jquery.validate*", 
       "~/Scripts/test.js")); 

스크립트로드 :

<script src="/Scripts/jquery-1.10.2.js"></script> 
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script> 
<script src="/Scripts/jquery.validate.js"></script> 
<script src="/Scripts/jquery.validate.unobtrusive.js"></script> 
<script src="/Scripts/test.js"></script> 
<script src="/Scripts/bootstrap.js"></script> 
<script src="/Scripts/respond.js"></script> 

미리 감사드립니다.

+0

jquery에서 90 % 오류 : undefined is not function .. 정의되지 않은 것은 무엇입니까? .. 콘솔에서 정의되지 않은 부분을 클릭하여 오류가 –

+0

@ Mohamed-Yousef 인 것을 확인하십시오. 오류는 "$ input.autocomplete (options);"줄에 있습니다. test.js 파일에 있습니다. 콘솔에서 $ input을 확인할 때 ""를 반환합니다. "$ input.autocomplete (options);을 입력하면 콘솔에서 오류를 반환합니다 : "TypeError : 정의되지 않은 함수가 아닙니다" – Rob

답변

3

정의되지 않은 것은 명확하게 .autocomplete jQuery 기능입니다. 제발, "Scripts being loading"부분에서 jQuery UI가 완전히 빠져 있다는 것을보십시오.

"~/Scripts/jquery-ui-{version}.js" 번들에 올바르게 포함 했으므로 오류에 대한 유일한 설명은 해당 경로에서 jQuery UI 스크립트 파일이 누락되었거나 레이아웃에서 worng 번들을 렌더링하고 있다는 것입니다. 면도기 코드보기).

+0

어떻게 내가 그것을 놓친 지 잘 모르겠습니다.이 점을 지적 해 주셔서 감사합니다. – Rob

+3

아마도 파티가 끝난 후 일년 중 첫 번째 근무일이기 때문입니다.) 문제가 아닌 곳에서 문제를 찾으려고 노력하는 것은 드문 일이 아닙니다. 다음 번에 대한 조언 :'undefined' 오류가 발생하면'undefined '가 무엇인지 발견하십시오. 함수 호출에서이 오류가 발생하면 콘솔에 괄호없이 함수 이름을 입력하십시오 (예 :'$ input.autocomplete'). 그러면'undefined '가 표시되고 어떤 이유로 든 함수 자체가 누락되었음을 알 수 있습니다 – JotaBe

관련 문제