如何使用jquery UI自动完成1.8.4?

时间:2010-09-12 15:38:53

标签: javascript jquery user-interface autocomplete

我想显示喜欢的建议 STREET NAME>城市>国家(我从服务器进入json的4种不同的街道,城市,国家,网址) 当我选择一个它会像链接一样去url 并将突出显示我在建议中找到的字母 我该怎么做? 这是我的代码

<script type="text/javascript">
    $('#search').autocomplete({
        source: function(req, add){  

            //pass request to server  
            $.getJSON("suggest.php?callback=?", req, function(data) {  

                //create array for response objects  
                var suggestions = [];  

                //process response  
                $.each(data, function(i, val){  
                suggestions.push(val.lable+' '+val.value+' '+val.both);  
            });  

            //pass array to callback  
            add(suggestions);  
            });  
        },  
        select: function(e, ui) {
        $('#search').val(ui.item.lable);
        },
        width: 300,
        max: 10,
        delay: 50,
        minLength: 1,
        scroll: false,
        highlightItem: true
      });
    </script>

服务器响应

([{"lable":"apartamentos mojácar beach","value":"mojacar","both":"spain"},{"lable":"hotel mandakini grand","value":"new delhi","both":"india"},{"lable":"hotel sol y mar sharming inn","value":"sharm el sheikh","both":"egypt"},{"lable":"la quinta inn and suites sarasota","value":"sarasota","both":"usa"},{"lable":"ocean sand golf and beach resort","value":"punta cana","both":"dominican republic"},{"lable":"rooms barcelona","value":"barcelona","both":"spain"},{"lable":"villa maroc essaouira","value":"essaouira","both":"morocco"},{"lable":" il casale farmhouse with panoramic swimming poo","value":"bettona","both":"italy"},{"lable":" shelley's ","value":"lynton","both":"united kingdom"},{"lable":" 1 melrose blvd by seasons in africa","value":"johannesburg","both":"south africa"}]);

我知道问题出在自动填充的“SELECT”和“SOURCE”字段中,但我不知道如何使用它。 如何解析响应,以便它可以工作。它仅适用于一个字段,但不适用于4个字段(vars)

//////////////////////

好吧现在我可以从服务器获得3个virables我将它们添加到源代码中。 但我不能一直选择一个它选择所有的字符串! 我怎么能管理呢?

2 个答案:

答案 0 :(得分:1)

如果你想使用jquery ui自动完成,你的数据必须是“一个简单的字符串数组,或者它包含数组中每个项目的对象,带有标签或值属性或两者都有”。这来自http://jqueryui.com/demos/autocomplete/

的文档

您的服务器响应不符合预期的数据类型,您应该修改suggest.php以将数据后处理为标签值对。

据我了解,您还希望在从自动填充中选择项目时执行自定义操作,因此您还应该为“select”事件添加处理程序。

答案 1 :(得分:0)

我不明白。你的代码以什么方式不起作用? suggest.php看起来像什么?如果suggest.php是一个你想要的字符串列表,它应该可以正常工作。