我正在尝试从文本文件加载我的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×tamp=1296041901116
首先,我不确定为什么每次都要提出新的请求,我认为从字符串加载它然后作为数据提供,这样只需要一个请求。其次,我不知道为什么那些后续请求,似乎认为文件名是,数据!据我所知,自动完成的第一个参数可以是数据,也可以是URL。我想autocomplete认为我的数据实际上是一个URL。
任何想法,我做错了吗?
答案 0 :(得分:1)
我已经破解了它。
我检索的数据当然只是一个字符串。因此,自动填充将其视为URL,并发出新请求。
我可以将我的JSON字符串转换为数组:
var data_array = eval(data);