如何将多维数组传递给jquery ui自动完成?

时间:2012-02-27 23:25:13

标签: javascript jquery arrays jquery-ui

我有一个自动填充字段,并将其源设置为一组朋友。

 GetFollowing(9, function(response)
                    {
                        if (response)
                        {
                            donor.following = response;
                            for (var i = 0; i < response.length -1; i++)
                            {
                                // make sure we have an image to display
                                if (response[i].image != null)
                                {
                                    $("#following").prepend("<li title='" + response[i].firstname + " " + response[i].lastname +
                                        "'><img src='<?php echo $baseUrl;?>/uploads/profile-pictures/" + response[i].image +
                                        "' alt='" + response[i].firstname + " " + response[i].lastname + "'/></li>");

                                    // add to the friends array
                                    if (! $.inArray(response[i].firstname + " " + response[i].lastname, friends))
                                        friends.push(response[i].firstname + " " + response[i].lastname);
                                }
                            }
                        }
                    });
                    GetFollowers(9, function(response)
                    {
                        if (response)
                        {
                            donor.followers = response;
                            for (var i = 0; i < response.length -1; i++)
                            {
                                // make sure we have an image to display
                                if (response[i].image != null)
                                {
                                    $("#followers").prepend("<li title='" + response[i].firstname + " " + response[i].lastname +
                                        "'><img src='<?php echo $baseUrl;?>/uploads/profile-pictures/" + response[i].image +
                                        "' alt='" + response[i].firstname + " " + response[i].lastname + "'/></li>");

                                    // Add to the friends array
                                    friends.push(response[i].firstname + " " + response[i].lastname);
                                }
                            }
                        }
                        // setup jquery-ui autocomplete
                        $("#msg-to").autocomplete({source: friends});
                    });

我的问题是我需要将id与所选的值相关联,如何才能完成?

1 个答案:

答案 0 :(得分:5)

http://jqueryui.com/demos/autocomplete/

您应该阅读更多概述。

  

预期的数据格式

     

来自本地数据,网址或回调的数据可以分为两部分   变体:

     
      
  • 一串字符串:
  •   
     

[ "Choice1", "Choice2" ]

     
      
  • 带有的对象数组   标签和价值属性:
  •   
     

[ { label: "Choice1", value: "value1" }, ... ]

     

标签属性显示在建议菜单中。用户从菜单中选择了某些内容后,该值将插入到input元素中。如果仅指定了一个属性,则它将用于两者,例如。如果仅提供value-properties,则该值也将用作标签。

使用标签进行文本表示,选择中每个项目的id值。

您还应该区分用于可视版本(显示单词)的文本框与数据版本(包含id的隐藏输入) - 类似于datepicker小部件(也称为替代数据)的文本框。这些都可以使用设置进行操作。