2014-02-15 3 views
0

내 HTML은검도 자동 완성 jQuery를 플러그인 오류

<input type="text" id="id-5505Name" name="id-5505Name" value=" " class="autocomplete"/> 
    <input type="text" id="id-2333Name" name="id-2333Name" value=" " class="autocomplete"/> 
    <input type="text" id="id-2323Name" name="id-2323Name" value=" " class="autocomplete"/> 
    <input type="text" id="id-2322Name" name="id-2322Name" value=" " class="autocomplete"/> 

내 JQuery와 스크립트

입니다
$(".autocomplete").kendoAutoComplete({ 
     minLength: 2, ignoreCase: true, placeholder: "Start typing...", 
     filter: 'contains', suggest: true, 
     dataTextField: "name", 
     dataValueField: 'id', 
     dataSource: { 
      type: "json", 
      serverFiltering: true, 
      transport: { 
       read: "PatientFileUpload/loaddrugname", parameterMap: function() { 
        return { 
         startsWith: $(this).data("kendoAutoComplete").value() 
        }; 
       }, 
       success: function (response) { 
        o.success(response); 
       } 
      } 
     }, select: function (e) { 
      var item = e.item; 
      var DataItem = this.dataItem(e.item.index()); 
      alert('Name : ' + DataItem.name + ', Id : ' + DataItem.id); 
      } 
    }); 

내 문제는 : 내가 $에 액세스 할 수 없습니다 이전 코드에서

(이) 개체가 매개 변수가 함수이므로 현재 개체에 액세스해야하며 JQuery 선택기를 변경할 수 없습니다. ('.autocompelete') 내가 이드 선택기를 사용할 수 없습니다 ... 어떤 아이디어

답변

1

사용 클로저를 :

$(".autocomplete").each(function() { 
    var that = this; 

    $(this).kendoAutoComplete({ 
     minLength: 2, 
     ignoreCase: true, 
     placeholder: "Start typing...", 
     filter: 'contains', 
     suggest: true, 
     dataTextField: "name", 
     dataValueField: 'id', 
     dataSource: { 
      type: "json", 
      serverFiltering: true, 
      transport: { 
       read: "PatientFileUpload/loaddrugname", 
       parameterMap: function() { 
        return { 
         startsWith: $(that).data("kendoAutoComplete").value() 
        }; 
       }, 
       success: function (response) { 
        o.success(response); 
       } 
      } 
     }, 
     select: function (e) { 
      var item = e.item; 
      var DataItem = this.dataItem(e.item.index()); 
      alert('Name : ' + DataItem.name + ', Id : ' + DataItem.id); 
     } 
    }); 
}); 
1

봅니다 변경 :

var DataItem = $(this).dataItem(e.item.index()); 

에 :

var DataItem = this.dataItem(e.item.index()); 
+0

죄송합니다. 나는 틀린 질문을했습니다. 나는 그것을 편집합니다. – Farahatology