2011-05-05 5 views
3

일부 데이터에는 jQuery UI 자동 완성이 사용됩니다. 이제 3 개의 자동 완성 요소가 있고이 중 2 개는 잘 작동합니다. 하나는 그렇지 않습니다. 페이지 시작 부분에서 그는 elem.ownerDocument is null 오류를 제공합니다. input 필드에 텍스트를 입력하면 결과가 표시되지만 this.menu is undefined (jquery.js line 6012)은 결과가 표시되어야하는 ul list을 나타냅니다. 여기jquery autocomplete : this.menu undefined

일부 코드 :

$("#iName").autocomplete({ 
    source: widget.festivals_list, 
    autofocus: true, 
    focus: function (e, ui) { 
     return false; 
    }, 
    search: function (event, ui){ 
     ownFest = true; 
     $("#iDate").removeAttr("disabled"); 
     $("#iTime").removeAttr("disabled"); 
    }, 
    select: function (event, ui) { 
     ownFest = false; 
     $(event.target).val(ui.item.label); 
     selectedN = ui.item.value; 
     $(widget.festivals).each(function fn(){ 
      if(this.id == ui.item.value){ 
       $("#iDate").val(this.date).attr("disabled", "disabled"); 
       $("#iTime").val(this.time).attr("disabled", "disabled"); 
      } 
     }); 
     return false; 
    } 
}); 

HTML 코드 :

<table> 
        <tr> 
         <td>Type the name</td> 
        </tr> 
        <tr> 
         <td><input type="text" id="iFest"/></td> 
        </tr> 
       </table> 

이 내 input 태그에 속성의 전형적인 수를 생성하고 ul 목록을 만듭니다.

<ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all" role="listbox" aria-activedescendant="ui-active-menuitem"></ul> 

<input id="iFest" class="ui-autocomplete-input" type="text" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true"> 

이러한 문제가있는 사람이 있습니까? 감사 (jQuery를 1.5.2와 jQuery를 UI 1.8.11 사용)

감사

답변

0

내가 믿는 그 당신 '이'범위를 벗어난 때문이다.

함수 내에서 'this'는 항상 사용자가 생각하는 것이 아닙니다.

일반적인 솔루션 '이'

var element = $(this); 

또는

var me = this; 

글로벌에 대한 참조를 확인하고 대신 요소를 참조하는 것 '이'당신이 함수에있을 때.

HTML을 게시 할 수 있습니까? 또는 어떤 라인에 오류가 있는지 나타낼 수 있습니까? 나는 당신의 발췌 문장에서 그것을 볼 수 없습니다.

+0

내 질문의 내용이 변경되었습니다. – jeroenjoosen

0

자동 완성으로 참조되는 라이브러리가 누락되었습니다.

<script type="text/javascript" src="js/ui/jquery.ui.menu.js"></script> 

행운을 빕니다 :

그래서이 포함!