【问题标题】:jquery autocomplete bug? or wrong version?jquery自动完成错误?还是错误的版本?
【发布时间】:2013-05-13 11:25:09
【问题描述】:

假设我有一个从 asmx 文件/Web 服务文件中获取的 json 对象。

[
    {
        "UserName": "hl",
        "FirstName": "hendra",
        "LastName": "lim"
    },
    {
        "UserName": "wd",
        "FirstName": "wildan",
        "LastName": "dan"
    },
    {
        "UserName": "gd",
        "FirstName": "genin",
        "LastName": "gn"
    },
    {
        "UserName": "tr",
        "FirstName": "tere",
        "LastName": "magda"
    }
] 

当我尝试访问它时,我会这样做:

 $("#tags").autocomplete({
        source: availableTags,
        focus: function (event, ui) {
            $("#tags").val(ui.item.FirstName);
            return false;
        },
        select: function (event, ui) {
            $("#tags").val(ui.item.FirstName);
            return false;
        }
});

你知道吗?它不工作......这让我头疼了2天。但后来我将我的 json 对象更改为:

[{"label": "hendra", "value": "hl"}, 
 {"label":"wildan", "value": "wd"}, 
 { "label": "genin", "value": "gn"}, 
 {"label": "hendrik", "value":  "hdrik"}]

$("#tags").autocomplete({
        source: availableTags,
             focus: function (event, ui) {
            $("#tags").val(ui.item.label);
                   $('#key').val(ui.item.value);
            return false;
        },
         select: function (event,ui){
                    $('#tags').val(ui.item.label);
              $('#key').val(ui.item.value);
             return false;
                }
    });

这是有效的,但是现在我想知道为什么当我使用第一种方法时 jquery 自动完成功能不起作用,浪费了我 2 天的时间并且让我超级头疼想弄清楚,但仍然无法得到它,jquery如果我使用没有工作

ui.item.FirstName

但它可以使用

ui.item.label or ui.item.value

我的第一种方法有问题吗?我认为它与第二个几乎相同,唯一不同的是在 json 对象中,一个使用“用户名,名字等”,另一个使用“标签和值”。

【问题讨论】:

    标签: jquery json jquery-ui autocomplete arrays


    【解决方案1】:

    试试这个......你必须使用

    $.each(data, function(key, value) {
         LocalityArray[key] = value.LocalityName;
    });
    

    我的例子。

    function GetLocalityList() {
        var LocalityArray = [];
        $.post("MvcLayer/Index/GetLocalityList",
        {
            CityID: $('#sltCity').val()
        },
        function(data) {
            // My sql query will be like this select LocalityID, CityID, LocalityName from tablename where CityID = 20
            // Here (data) is array format. Like this
            // [{"LocalityID":9397,"CityID":55,"LocalityName":"Adugodi"},{"LocalityID":9398,"CityID":55,"LocalityName":"Aga Abbas Ali Road"},{"LocalityID":9399,"CityID":55,"LocalityName":"Agaram"},{"LocalityID":9400,"CityID":55,"LocalityName":"Agrahara Dasara Halli"},{"LocalityID":9401,"CityID":55,"LocalityName":"Agrahara Dasarahalli"},{"LocalityID":9402,"CityID":55,"LocalityName":"Airport Exit Road"},{"LocalityID":9403,"CityID":55,"LocalityName":"Horamavu"},{"LocalityID":9404,"CityID":55,"LocalityName":"Hosakere Halli"},{"LocalityID":9405,"CityID":55,"LocalityName":"Hennur"},{"LocalityID":9406,"CityID":55,"LocalityName":"Hesaraghatta"},{"LocalityID":9407,"CityID":55,"LocalityName":"HKP Road"},{"LocalityID":9408,"CityID":55,"LocalityName":"HMT Layout"},{"LocalityID":9409,"CityID":55,"LocalityName":"Hongasandra"},{"LocalityID":9410,"CityID":55,"LocalityName":"Hoody"},{"LocalityID":9411,"CityID":55,"LocalityName":"Hayes Road"}    ]
    
            $.each(data, function(key, value) {
                LocalityArray[key] = value.LocalityName;
            });
            $("#txtLocality").autocomplete({
                minLength: 1,
                source: LocalityArray
            });
        },
        'json'
        );
    }
    

    【讨论】:

    • 我可能会在星期一试试,因为我把源代码留在了办公室,谢谢。会让你知道它是否有效,并投票给你。
    猜你喜欢
    • 2013-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多