这与我在 How to make an AJAX call immediately on document loading 提出的问题有关
我正在尝试获取由 | 分隔的字符串来自服务器的字符用作 jQuery 的 .autocomplete() 插件的输入。如果我在代码中声明了一个局部变量,那么它可以正常工作,但是如果我尝试使用对服务器的 ajax 调用来定义此变量,即使警报显示我已使用以下命令填充变量“dataArray”,它也不起作用完全相同的字符。
我的代码(不起作用)是:
$(document).ready(function(){
$.ajax({
type: "GET",
url: "../AutoComplete",
success: function(data) {
var dataArray = data;
alert(dataArray);
$("#example").autocomplete(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("|");
如果我这样做(尽管这不是解决方案):
$(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
脚本的输出中。另外,去掉引号。
换句话说,让 ../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("|");
关于jQuery 自动完成适用于本地字符串,但当从服务器调用相同的字符串时则不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2803589/