2012-06-01 2 views
1

먼저 내 코드jQuery를 UI 자동 완성 IE의 문제

$(function() { 
     var suggest; 
     $("#guestname").keyup(function() { 

      $.ajax({ 
       async: true, 
       url: '../include/searchGuest.php', 
       dataType: 'json', 
       data: 'searchTxt=' + $(this).val() + '&festival_id=<?php echo $festival_id;?>', 
       success: function(data) { 
        suggest = data; 
        get_autocomplete(suggest); 
       } 
      }); 
     }); 
    }); 


    function get_autocomplete(suggest) { 
     $("#guestname").autocomplete({ 
     minLength: 3, 
     source: suggest 
     }); 
    } 

나는 손님의 목록을 얻으려면이 jQuery를 함수를 사용합니다. 사용자는 'John'과 같은 이름으로 입력 필드를 채 웁니다. Ajax는 'John'을 (를) 포함하는 성과 이름이있는 게스트를 데이터베이스에서 검색합니다. 동일한 스크립트 (PHP)에서 [ "1234 : John Doe", "...", "..."]와 같은 JSON 객체를 만듭니다 (숫자는이 게스트의 ID이며 중요하지 않다고 생각합니다. 단지 그것을 언급하고 싶다). 그런 다음 jQuery UI의 자동 완성 기능에 JSON을 전달합니다.

모든 것이 FF와 Chrome에서 잘 작동합니다. JSON 형식의 결과를 얻은 후에는 litte 창이 inputield 아래에 열리고 모든 일치 항목이 표시됩니다. IE9에서는 전혀 작동하지 않지만 결과적으로 완전한 JSON 객체를 얻지 못합니다. 또한 대부분 성냥을 얻기 위해 거의 모든 이름을 써야합니다. '설리반'과 같은 성을 얻으려면 '설리브'. FF에서는 'Sul'을 쓸 수 있습니다.

게스트 데이터베이스에는 aroung 8.1k 항목이 있습니다. IE가 큰 JSON을 처리 할 수 ​​없거나 스크립트를 개선해야합니까? IE와 JSON 또는 jQuery에서 자주 발생하는 문제입니까?

답변

0

당신은 한 번만 자동 완성 위젯을 초기화해야합니다 그리고 당신은 서버에서 필터링을 수행 할 source 옵션을 사용할 수 있습니다

$("#guestname").autocomplete({ 
    minLength: 3, 
    source: function (request, response) { 
     $.ajax({ 
      async: true, 
      url: '../include/searchGuest.php', 
      dataType: 'json', 
      data: 'searchTxt=' + request.term + '&festival_id=<?php echo $festival_id;?>', 
      success: function(data) { 
       response(data) 
      } 
     });   
    } 
}); 
  • request.term는 사용자가 검색 한 용어입니다.
  • response은 자동 완성 후보와 함께 호출해야하는 콜백 함수입니다.
+0

Atm 나는 입력 필드에'keyup' 이벤트를 사용합니다. 귀하의 코드로 나는 아약스를 호출해야합니다. –

+0

어리석은 질문은 어리 석다. 위의 것을 잊어 버려라. 그것은 '작동'하지만 IE에 내 문제는 여전히 존재합니다. 그것은 IE 캔트가 JSON을 처리하는 것과 같습니다. –

+0

그건 이상합니다. 서버에서 반환하는 결과를 제한하고 여전히 발생하는지 확인하십시오. –