如何将数据从ajax传递到Jquery UI自动完成

时间:2014-09-30 09:20:49

标签: javascript jquery ajax jquery-ui autocomplete

我有ajax代码,它从Api返回Json,并且我正在寻找一种方法,我如何将这些数据传递给jquery自动完成。 这是mo代码:

$("#autocomplete").autocomplete({
      minLenght: 2,
      source: function(request,response) {        
      $.ajax({
        url: "http://www.myadres/search/"+$("#autocomplete").val(),
        crossDomain: true,
        type: "POST",
        dataType: "json",
         data: {
         "from" : "0",
         "take" : "10"
         },
        beforeSend: function() {  
          //alert ('working...');
        },      
        success: function( response) {
            for (i = 0; i < response.Results.length; i++) {
            // Console logs this data as desired, every time when i type something, console logging works good
            console.log(response.Results[i].Name);
            };          
          },
        error: function(  ) {
            alert( "Error occured!" );
        },   
        complete: function( xhr, status ) {
        }              
      })
     },
 }); 

我只是不知道如何将数据从成功回调传递到jquery自动完成。谢谢你的任何建议。

1 个答案:

答案 0 :(得分:0)

response是一个期望一个字符串数组的回调函数。您还为ajax声明了response值,因此您无法访问response函数。您必须为success参数设置另一个名称,例如ajaxResponse。创建数组并在response ajax处理程序中调用success回调:

success: function(ajaxResponse) {
    var values = [];
    for (i = 0; i < ajaxResponse.Results.length; i++) {
        values.push(ajaxResponse.Results[i].Name);
    };
    response(values);
}