【问题标题】:jQuery Autocomplete showing result label as undefinedjQuery Autocomplete 将结果标签显示为未定义
【发布时间】:2017-11-30 12:36:31
【问题描述】:

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

下面是我的代码和截图:

    $(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) {

            }
        });
    });

选择前

选择后

我尝试使用警报功能调试标签和值。价值观是完美的。我无法弄清楚错误。

item.name
item.id

这里是回调响应:

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


        ]

【问题讨论】:

  • 你在成功回调中得到了什么响应?
  • @PankajMakwana 添加了回调响应

标签: javascript jquery ajax autocomplete


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢,伙计。我在标签和值周围添加了引号,它起作用了。
【解决方案2】:
$.ajax({
    url: "url",
    type: 'POST',
    data: {
    },
    success: function (res) {
        //console.log(res);
        var obj = JSON.parse(res);

        $('#od').html('<option value=""> Select</option>');
        for (var i = 0, len = obj.length; i < len; i++){
            $('#id').append('<option value='+ obj[i].item_id +'> '+ obj[i].item_name +'</option>');  
        }
    }
});

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 2012-06-13
    相关资源
    最近更新 更多