jQuery自动完成功能将结果标签显示为未定义

时间:2017-06-27 12:41:57

标签: javascript jquery ajax autocomplete

正在正确过滤列表,但标签显示为未定义。当我选择项目时,该值将被绑定。

以下是我的代码以及屏幕截图:

    $(document).on('ready',function(){
        $('#search').autocomplete({
            source: function(req,res) {
                $.ajax({
                    url: "/search",
                    dataType: "json",
                    type: "GET",
                    data: {
                        term: req.term
                    },
                    success: function(data) {
                        res($.map(data, function(item) {

                            return {
                                label: item.name,
                                value: item.id
                            };
                        }));
                    },
                    error: function(xhr) {
                        alert(xhr.status + ' : ' + xhr.statusText);
                    }
                });
            },
            select: function(event, ui) {

            }
        });
    });

选择前  enter image description here

选择后 enter image description here

我尝试使用alert函数调试标签和值。价值观是完美的。我无法弄清楚错误。

item.name
item.id

以下是回调回复:

        [
        {
        "id":"1",
        "name":"Android"
        },
        {
        "id":"2",
        "name":"Akira"
        },
        {
        "id":"3",
        "name":"Andy"
        },
        ....


        ]

2 个答案:

答案 0 :(得分:2)

您在ajax成功函数中返回不同的属性名称。

您可以尝试使用这些属性名称吗?

[
   {
      "label":"1",
      "value":"Android"
   },
   ....        
]

答案 1 :(得分:0)

let label = UILabel(frame: CGRect(x:0, y:0, width:150, height:50))
    label.backgroundColor = UIColor.clear
    label.numberOfLines = 3
    label.font = UIFont.boldSystemFont(ofSize: 16.0)
    label.textColor = UIColor.blackColor
    label.text = "This is a multiline string for the navBar details"
    self.navigationItem.titleView = label

这是我的代码获取所有选项,你可以尝试这个