jQuery自动完成与本地字符串一起使用,但是当从服务器调用相同的String时则不行
这与我在如何在文档加载时立即进行AJAX调用时提出的问题有关
我试图得到一个由|分隔的字符串 服务器中的字符用作jQuery的.autocomplete()插件的输入。 如果我在代码中声明了一个局部变量,那么它工作正常,但是如果我尝试使用对服务器的ajax调用来定义此变量,即使警报显示我已填充变量“dataArray”,它也不起作用完全相同的字符。
我的代码(不起作用)是:
$(document).ready(function(){ $.ajax({ type: "GET", url: "../AutoComplete", success: function(data) { var dataArray = data; alert(dataArray); $("#example").autocomplete(dataArray); } }); });
警报中打印的值为:
“手稿|文字|信息对象|篮球|球|运动器材|狼蛛|蜘蛛|澳大利亚蜘蛛|板球运动员|中世纪人工制品|人物|运动员|莱昂纳多达芬奇|国家|语言|发明家|牧师|电子产品制造商|对象|信件| Artefact |治理模型|生物|动物“.split(”|“);
如果我这样做(虽然这不是解决方案):
$(document).ready(function(){ $.ajax({ type: "GET", url: "../AutoComplete", success: function(data) { var dataArray = "Manuscript|Text|Information Object|Basketball|Ball|Sporting Equipment|Tarantula|Spider|Australian Spider|Cricket Player|Medieval Artefact|Person|Sportsperson|Leonardo Da Vinci|Country|Language|Inventor|Priest|Electronics Manufacturer|Object|letter|Artefact|governance model|Organism|Animal".split("|"); alert(dataArray); $("#example").autocomplete(dataArray); } }); });
自动完成工作正常吗?
不要将分割放在../AutoComplete
脚本的输出中。 另外,摆脱报价。
换句话说,make ../AutoComplete
返回:
Manuscript|Text|Information Object|Basketball|Ball|Sporting Equipment|Tarantula|Spider|Australian Spider|Cricket Player|Medieval Artefact|Person|Sportsperson|Leonardo Da Vinci|Country|Language|Inventor|Priest|Electronics Manufacturer|Object|letter|Artefact|governance model|Organism|Animal
然后做:
dataArray = data.split("|");
看起来你的服务器正在返回字符串加上一段javascript代码。 警报以动物“.split(”|“)结束;您必须将该行作为javascript代码执行。
尝试重写您的代码,如下所示:
success: function(data) { var dataArray = eval(data); $("#example").autocomplete(dataArray); }
是../AutoComplete
返回.split("|");
?