我一直在尝试修改http://jqueryui.com/autocomplete/#maxheight中的示例来处理来自本地存储的text / csv文件的输入,如
ItemA
ItemB
ItemC
....
我能够从文本文件中的数据创建一个数组并将其打印到console.log(),但我不知道如何将此数组移交给自动完成功能。我已尝试在函数外部初始化数组,但在自动完成中使用它时,它将使用非填充数组a。
</style>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$.ajax({
type: "GET",
url: "john.txt",
dataType: "text",
success: function(data) {processData(data);}
});
});
var a = [];
function processData(myTxt) {
var myLines = myTxt.split(/\r\n|\n/);
for (var i=1; i<myLines.length; i++) {
a.push(myLines[i]);
}
console.log(a);
}
$( "#tags" ).autocomplete({
source: a
});
</script>
如何正确地将数组传递给自动完成?
答案 0 :(得分:2)
我认为您在AJAX查询完成之前尝试添加自动完成源。
查询在$(document).ready()
上完成,但自动完成源设置在它之前。所以仍然是空的。
试试这个:
var a = [];
function processData(myTxt) {
var myLines = myTxt.split(/\r\n|\n/);
for (var i=1; i<myLines.length; i++) {
a.push(myLines[i]);
}
console.log(a);
$( "#tags" ).autocomplete({
source: a
});
}