JQuery UI自动完成组合框选择值而不是名称

时间:2014-10-28 12:31:59

标签: jquery ajax user-interface combobox autocomplete

我需要一个组合框(id / name)对,用户选择一个项目,并将id发送到服务器。 同时组合框调用ajax webservice来选择自动完成

我有一个几乎有效的例子,在JSFiddle

这是AJAX部分:

source: function(request, response) {
                $.ajax({
                    url: "http://ws.geonames.org/searchJSON",
                    type: "POST",
                    dataType: "jsonp",
                    data: {
                        featureClass: "P",
                        style: "full",
                        username: "andrebarata",
                        maxRows: 12,
                        name_startsWith: request.term
                    },
                    success: function(data) {
                        response($.map(data.geonames, function(item) {
                            return {
                                label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
                                value: item.geonameId
                            }
                        }));
                    }
                })
            },

唯一的问题是,当我选择一个值时,它会将值更改为ID而不是名称。

我该怎么做才能改变这个?

1 个答案:

答案 0 :(得分:1)

如果我更改" value:item.geonameId" by" value:item.name"它的工作......

并获取id添加新属性" geoid"像这样:

success: function(data) {
                        response($.map(data.geonames, function(item) {
                            return {
                                label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
                                value: item.name,
                                geoid: item.geonameId
                            }
                        }));
                    }
                })
            },
            select: function(event, ui) {
                alert(ui.item.value+" , "+ ui.item.geoid);