jQuery自动完成,解析JSON结果

詹姆斯C2

编程不是新手,而是Javascript和JQuery的新手。

我很难从哪里解析JSON结果,我从AJAX查询中获得了JQuery的自动完成功能。

这是我到目前为止的内容:

$(document).ready(function () { 

  function split( val ) { 
    return val.split( /,\s*/ );
  } 
  function extractLast( term ) { 
    return split( term ).pop();
  }

  $('#related').bind( "keydown", function( event ) {
    if ( event.keyCode === $.ui.keyCode.TAB && $(this).autocomplete( "instance" ).menu.active ) { 
      event.preventDefault();
    }
  }).autocomplete({ 
    source: function( request, response ) { 
      $.getJSON( "/api/v1/indicator/", { specific: extractLast( request.term ) }, response);
    }, search: function() { 
      var term = extractLast ( this.value ) ;
      if ( term.length < 2) { 
        return false;
      }
    }, focus: function() { 
      return false;
    }, select: function( event, ui ) { 
      var terms = split( this.value );
      console.log(terms);
      terms.pop();
      terms.push( ui.item.value );
      terms.push( "" ) ;
      this.value = terms.join( ", " );
      return false;
    }
  });
});

JSON结果如下所示:

{"data": [{"value": "dfdsfsdfasdf.com"}]}

并且我想用我从AJAX查询返回的结果填充“ #related”输入。

编辑1:

好了,这是新的代码部分:

                source: function( request, response ) { 
                    $.getJSON( "/api/v1/indicator/", { specific: extractLast( request.term ) },
                    function(data) {
                        var indicatorItems = [];
                        $.each(data, function(k, v) { 
                            $.each(v, function(i, indicator) { 
                                indicatorItems.push(indicator['value']);
                            });
                        });
                        console.log(indicatorItems);
                        response(indicatorItems);
                    })

现在,它仍然没有显示在自动完成的用户界面中,并且我没有抛出任何错误。上面哪个函数(搜索,焦点或选择)是传递和操纵“响应”变量的位置?我正在查看AutoComplete的文档,但似乎无法正确解决。

编辑2:

好的,显然它正在运行,但是没有在正确的容器中显示。我可以看到结果填充在“ #related”输入之外(在后台)。

编辑3:

得到它的工作!需要使用一些更改CSS

.ui-autocomplete { z-index: 1050; } 
Kris Ku |
source: function( request, response ) { 
      $.getJSON( "/api/v1/indicator/", 
                 { specific: extractLast(request.term ) },  
                 function(data){
                      var indicatorItems = [];
                      $.each(data, function(k, v) { 
                          $.each(v, function(i, indicator) { 
                             indicatorItems.push({
                                  value: indicator['value'], 
                                  label: indicator['value']
                             }
                          });
                      });
                      response(indicatorItems);  

                 });
    },

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery自动完成JSON解析错误

来自分类Dev

解析jquery自动完成多维json数据

来自分类Dev

样式jQuery自动完成结果

来自分类Dev

JSON的jQuery自动完成

来自分类Dev

给json自动完成的jQuery

来自分类Dev

jQuery自动完成与JSON问题

来自分类Dev

如何限制jQuery自动完成结果的数量?

来自分类Dev

Jquery UI自动完成的限制结果

来自分类Dev

jQuery的自动完成不显示结果

来自分类Dev

Jquery UI自动完成的限制结果

来自分类Dev

JQuery Ajax 自动完成不显示结果

来自分类Dev

JQuery 自动完成不会呈现结果

来自分类Dev

jquery自动完成不显示结果

来自分类Dev

JQuery 自动完成返回空白结果

来自分类Dev

jQuery UI自动完成解析数据

来自分类Dev

jQuery自动完成结果框未显示,已将JSON流转换为`label`和`value`

来自分类Dev

jQuery UI自动完成的JSON数组

来自分类Dev

自动完成的jQuery UI ... json的错误

来自分类Dev

jQuery UI自动完成的JSON数组

来自分类Dev

来自 json 数据的 Jquery 自动完成

来自分类Dev

jQuery UI自动完成-没有结果消息

来自分类Dev

通过XML进行JQuery自动完成(动态结果)

来自分类Dev

获取函数的结果作为jQuery自动完成选项

来自分类Dev

带有可拖动结果的jQuery自动完成

来自分类Dev

如果没有结果,则jQuery自动完成显示错误MSG

来自分类Dev

Rails 4的jQuery自动完成文本无结果

来自分类Dev

通过JQuery UI自动完成获取过滤结果

来自分类Dev

jQuery UI自动完成搜索结果不显示

来自分类Dev

jQuery的自动完成不工作于一个以上的结果