【问题标题】:How pass data from ajax to Jquery UI autocomplete如何将数据从 ajax 传递到 Jquery UI 自动完成
【发布时间】:2014-09-30 17:29:56
【问题描述】:

我有 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 自动完成。谢谢你的建议。

【问题讨论】:

  • 查看问题代码如何使用。这会有所帮助:stackoverflow.com/questions/26098188/…
  • 不同之处在于,您通过的那个链接不是我的问题。我的数据是正确的。我只是不知道如何传递这些数据来自动完成。

标签: javascript jquery ajax jquery-ui autocomplete


【解决方案1】:

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);
}

【讨论】:

  • 现在控制台显示:未捕获类型错误:对象不是函数成功:函数(响应){ var values = []; for (i = 0; i
  • 我改了答案,你有一个变量名冲突。
猜你喜欢
  • 2011-12-19
  • 1970-01-01
  • 2011-01-08
  • 1970-01-01
  • 1970-01-01
  • 2015-12-06
  • 1970-01-01
  • 2019-04-22
  • 2017-11-09
相关资源
最近更新 更多