使用ID和值自动填充下拉列表

时间:2015-03-31 14:43:27

标签: javascript jquery html jquery-autocomplete

我想自动填写一个下拉列表。

这是我的 json字符串

  

[{ “ID”:1, “名称”: “大卫”},{ “ID”:2 “名称”: “保罗”}]

这是我的输入

    <input type="text" id="tbNames" />

这是我的 javascript

    //datas variable contains the json string
    function BindNames(datas) { 
        $('#tbNames').autocomplete({
            source: datas,
            minLength: 0,
            scroll: true,
            select: function (event, ui) {
                $("#tbNames").val(ui.item.Name);
                return false;
            } 
        }).focus(function () {
            $(this).autocomplete("search", "");
        });
    }

问题是,当我点击'tbNames'输入时,会显示下拉列表,但不会显示内部名称但是列表中有名称,因为当我点击下拉列表中的一个时,其中一个名称显示在我的输入中。

http://jsbin.com/wudidaqapo/1/edit?html,css,js,console,output

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

试试这个:

 function BindNames() {
             var datas=[{"ID":1,"Name":"david"},{"ID":2,"Name":"Paul"}];

            $('#tbNames').autocomplete({

               source: function (request, response) {
                response($.grep(($.map(datas, function (v, i) {

                return {
                    label: v.Name,
                    value: v.ID
                };
               })), function (item) {
                  return item.label;
               }));
               },
              minLength: 0,
            scroll: true,

    }).focus(function () {
            $(this).autocomplete("search", "");
        });
}

答案 1 :(得分:1)

请查看它是否对您有所帮助。请使用自动填充器用于查找匹配项的json对象中的“label”属性

[{"ID":1,"Name":"david","label":"david"},{"ID":2,"Name":"Paul","label":"Paul"}]