jquery自动完成,从文本文件加载

时间:2011-01-26 11:47:48

标签: jquery autocomplete

我正在尝试从文本文件加载我的jquery自动完成数据,以减少页面加载大小。我在尝试:

<script type="text/javascript">
    $(document).ready(function(){
            var practitioner_data = new Array();
            $.get("/live_practitioners.txt", { },
            function(data){
                var data_array = new Array();
                data_array = data;
                $("#search_therapist_name").autocomplete(data_array, {minChars: 1, matchContains: true, mustMatch: true, selectFirst: false, formatItem: function(item) { return item.text; } }).result(function(event, item) { document[\'' . $str_form_name . '\'].counsellor_id.value=item.counsellor_id; });
            });
    });
</script>

Firebug向我展示了对txt文件的第一个请求,并且数据看起来格式正确:

[{text:'Dr. Tania Abdulezer', counsellor_id:'877'}, {text:'Helen Acton', counsellor_id:'712'}]

然而,当我开始在文本框中输入内容时,firebug正在向我显示一个请求,对于每个输入的新字母,请转到:

http://rscpplocal/%5B%7Btext:%27Dr.%20Tania%20Abdulezer%27,%20counsellor_id:%27877%27%7D,%20%7Btext:%27Helen%20Acton%27,%20counsellor_id:%27712%27%7D%5D?q=r&limit=10&timestamp=1296041901116

首先,我不确定为什么每次都要提出新的请求,我认为从字符串加载它然后作为数据提供,这样只需要一个请求。其次,我不知道为什么那些后续请求,似乎认为文件名是,数据!据我所知,自动完成的第一个参数可以是数据,也可以是URL。我想autocomplete认为我的数据实际上是一个URL。

任何想法,我做错了吗?

1 个答案:

答案 0 :(得分:1)

我已经破解了它。

我检索的数据当然只是一个字符串。因此,自动填充将其视为URL,并发出新请求。

我可以将我的JSON字符串转换为数组:

var data_array = eval(data);