jQueryUI使用$ .ajax从text / csv文件中自动完成数据

时间:2014-07-06 09:58:02

标签: javascript jquery function jquery-ui autocomplete

我一直在尝试修改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>

如何正确地将数组传递给自动完成?

1 个答案:

答案 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
        });
}