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

How pass data from ajax to Jquery UI autocomplete

本文关键字:UI Jquery 数据 ajax      更新时间:2023-09-26

我有ajax代码,它从Api返回Json,我正在寻找一种方法,如何将这些数据传递给jquery autocomplete。这是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自动完成。谢谢你的建议。

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

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