jquery ui autocomplete只返回一个值
我的自动完成有问题,因为它只返回一条记录,而远程Web服务返回10个项目 我想知道你是否可以看看我的代码,看看我是否做错了什么 收到的数据: {“d”:“[“02102008633\”、“02102008794\”、“02102008980\”、“02102015321\”、“02102018743\”、“021024602\”、“02102037454\”、“02102038366\”、“02102040774\”、“02102056369\”] 万分感谢 干杯,jquery ui autocomplete只返回一个值,jquery,jquery-ui,jquery-ui-autocomplete,Jquery,Jquery Ui,Jquery Ui Autocomplete,我的自动完成有问题,因为它只返回一条记录,而远程Web服务返回10个项目 我想知道你是否可以看看我的代码,看看我是否做错了什么 收到的数据: {“d”:“[“02102008633\”、“02102008794\”、“02102008980\”、“02102015321\”、“02102018743\”、“021024602\”、“02102037454\”、“02102038366\”、“02102040774\”、“02102056369\”] 万分感谢 干杯, 安我想我找到了。。。请看这一
安我想我找到了。。。请看这一行:
var result = new Array(eval(data.d));
现在,由于eval(data.d)
的计算结果已经是一个数组,因此您实际上调用了如下内容:
var result = new Array([1, 2, 3]);
这将实际创建一个长度为1的数组,其中的第一个元素是长度为3的数组。这也让我目瞪口呆,直到我想在JS控制台中检查它(不要让我开始打印输出,不包括方括号…):
但好消息是有一个简单的解决方法:
var result = eval(data.d);
希望这有帮助 JQuery.map的结果是什么样的?除了Xavier正确的答案外,请重新阅读的“概述”部分,特别是,您应该始终调用
response()
(在错误处理中不这样做),您应该(如果可能)从服务器返回有效的json对象数据,这样您就不会被迫eval()
像这样谢谢你的提示@davin!将再次尝试查看此内容!:)
js> ra1 = new Array(1, 2, 3)
1,2,3
js> ra2 = new Array([1, 2, 3])
1,2,3
js> ra1.length
3
js> ra2.length
1
var result = eval(data.d);