2014-06-06 3 views
0

다음 코드를 작성했습니다. 간단히 말해서 나는 userfunctions.php에서 Ajax를 가진 소스 배열을 얻고 싶습니다. 그것은 작동하지만 몇 밀리 초 후에 selection div가 사라집니다. 또한 $ ('# autocomplete-ajax'). 자동 완성 ({.. 성공 : 작동하지 않습니다 .. 그것은 배열을 비어 있습니다.jquery 자동 완성이 제대로 작동하지 않습니다.

내가 사용하고 있습니다 : https://github.com/devbridge/jQuery-Autocomplete

$('#autocomplete-ajax').keyup(function(){ 
    var ara = $(this).val(); 
    var ara= ara.replace("@", ""); 
    var data = "action=get_auto_users&text="+ara; 
    var arr = new Array(); 
    $.ajax({ url: '/inc/userfunctions.php', 
     data: data, 
     type: 'post', 
     success: function(output) { 
      obj = JSON.parse(output); 
      arr = new Array(); 
      $.each(obj, function(key, value) { 
       arr.push(value[2]) 
      }); 

      $('#autocomplete-ajax').autocomplete({ 
       lookup: arr, 
       lookupFilter: function(suggestion, originalQuery, queryLowerCase) { 
        var re = new RegExp('\\b' + $.Autocomplete.utils.escapeRegExChars(queryLowerCase), 'gi'); 
        return re.test(suggestion.value); 
       }, 
       onHint: function (hint) { 
        $('#autocomplete-ajax-x').val(hint); 
       } 
      }); 

     } 
    }); 

}); 

답변

0

아래처럼 변경하고 근무한다 callauto 기능의 하단에 초점을 추가

$('#autocomplete-ajax').keyup(function(){ 
    var ara = $(this).val(); 
    var ara= ara.replace("@", ""); 
    var data = "action=get_auto_users&text="+ara; 
    $.ajax({ url: '/inc/userfunctions.php', 
     data: data, 
     type: 'post', 
     success: function(output) { 
      obj = JSON.parse(output); 
      arr = new Array(); 
      $.each(obj, function(key, value){ 
       arr.push(value[2]); 
      }); 
      callauto(arr); 

     } 
    }); 
}); 

function callauto(arr){ 
    $('#autocomplete-ajax').autocomplete({ 
     lookup: arr, 
     lookupFilter: function(suggestion, originalQuery, queryLowerCase) { 
      var re = new RegExp('\\b' + $.Autocomplete.utils.escapeRegExChars(queryLowerCase), 'gi'); 
      return re.test(suggestion.value); 
     }, 
     onHint: function (hint) { 
      $('#autocomplete-ajax-x').val(hint); 
     } 
    }); 
    $('#autocomplete-ajax').focus(); 
} 
!
관련 문제