2016-04-26 69 views
0

我试过从plunker中挑选的以下代码以减少对数据库的ajax请求。 JSON格式也可以按照文本文件中的示例生成。从本地文本文件jquery自动完成不拾起

但是,当我试图填充自动完成选项它只显示一个字符的开始。但是,当我使用JSON输出直接与项目变量,然后它工作正常。

Plunker Plunker Link

在Keywords.txt JSON文件示例

["Mis","Operation","Operation Manager","Php","Sales","Telecalling","Analytics","Ceo","Commercials"]; 

代码

$(function() 
{ 
    var items = 'Keywords.txt';   

    function split(val) 
    { 
     return val.split(/,\s*/); 
    } 

    function extractLast(term) 
    { 
     return split(term).pop(); 
    } 

    $("#keyword") 
    .autocomplete(
    { 
     minLength: 1, 
     source: function(request, response) 
     { 
      response($.ui.autocomplete.filter(items, extractLast(request.term))); 
     }, 
     focus: function() 
     { 
      return false; 
     }, 
     select: function(event, ui) 
     { 
      var terms = split(this.value); 
      // remove the current input 
      terms.pop(); 
      // add the selected item 
      terms.push(ui.item.value); 
      // add placeholder to get the comma-and-space at the end 
      terms.push(""); 
      this.value = terms.join(", "); 
      return false; 
     } 
    }); 
}); 
+0

如何在javascript中调用本地txt文件? –

回答

1

我认为你的问题是,你有一个字符串,试图解析回应:

$.get('Keywords.txt').then(function(keywords){ 
    items = JSON.parse(keywords); 
}); 
+0

嗨马吕斯,我试图实现这一点,但我想我在执行中做错了事。你能指导我如何以及在哪里实施你的建议。 –

+0

嗨Balvinder,我为你创建了一个Plunker http://plnkr.co/edit/sGVTAV6zHrISfRExoMjA?p=preview –

+0

谢谢Marius。我确实在第一时间把你的建议放在了正确的位置,但没有提及数组,所以它不起作用。无论如何,现在它工作正常。但有一件事情正在困扰着我。 “有什么方法可以代替一次加载完整的关键字列表,当用户提供任何输入时,它只是从文本文件中获取相关建议?” –