2011-08-24 8 views
1
내 원격 데이터 소스 자동 완성 필드에 문제를 가지고있는 경우

외부 호출에서 자동 완성을 시작 :JS - JQuery와 (UI) -

$("#birds").autocomplete({ 
     source: function(request, response) { 
       $.ajax({ 
        url: "xxxx", 
        dataType: "json", 
        data: { 
         y: y, 
         x: x, 
        }, 
        success: function(data) { 
         response(data); 
        } 
       }); 
      }, 
     minLength: 0, 
     select: function(event, ui) { 
      alert(ui.item ? 
       "Selected: " + ui.item.value + " aka " + ui.item.id : 
       "Nothing selected, input was " + this.value); 
     } 
    }).live("click", function() { 
     $(this).trigger('keydown.autocomplete'); 
    }); 

.live ("클릭")이 잘 작동하지만, 첫 번째에 대한 딸깍 하는 소리. 목록에서 결과를 선택하고 포커스를 클릭하면 이벤트가 파문납니다. 키 동작을 사용하면 아무런 문제가 없습니다. 콘솔에 아무것도 표시되지 않습니다. 도움을

감사합니다, 노마

-> 버전

답변

0

하면 자동 완성의 사용 나쁜 영어 (engouh되지 않습니다 2 년) 죄송합니다?

내가 1.8.13 을 사용하고 그러나 솔루션에 내가하여 자동 완성을 시작할 수 없습니다 귀하의 JSON 출력을

+0

에 맞게 분명히 키 값을 대체 할 더 간단한 코드

$("#birds").autocomplete("xxxx", { width: 400, dataType: 'json', highlight: false, scroll: true, scrollHeight: 400, parse: function(data) { var array = new Array(); for(var i=0;i<data.items.length;i++) { array[array.length] = { data: data.items[i], value: data.items[i], result: data.items[i].username }; } return array; }, formatItem: function(row) { var name = ''; if (row.first_name && row.last_name) name = '('+row.first_name+', '+row.last_name+')'; else if (row.first_name) name = '('+row.first_name+')'; else if (row.last_name) name = '('+row.last_name+')'; return row.username+' '+name; } }); 

를 사용해보십시오 요소를 이벤트로 클릭 (또는 포커스)하면 ...? –