【发布时间】:2012-09-07 01:55:22
【问题描述】:
不知道这是否重要,但 msg.d 大约有 300 行长。当我提醒 msg.d 时,我得到了格式正确的 Json 数据。
$("#supplierSelect").autocomplete({
source: function( request, response ) {
$.ajax({
type: "POST",
url: "SupplierAdmin.aspx/PopulateSupplierSelectDropDownList",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
response( $.map( msg.d, function( item ) {
return {
label: item.title,
value: item.turninId
}
}));
}
});
}
}).fadeIn();
非常感谢您能告诉我如何只在成功时淡入。
编辑:“格式正确的 Json 数据”实际上在标签和值周围都有引号,并且顺序是切换的。现在检查它是否有所作为。抱歉信息不完整。
Edit2: 我用 response( $($.parseJSON(msg.d)).map( function()... 代替,现在当我输入任何内容时,自动完成功能会下降整个名称列表并选择一个将值放入框中。我是否可以假设这不是正确的功能?
【问题讨论】:
-
这可能是响应是 300 行长的事实。如果结果集较小,它不会崩溃吗?
-
另外,你真的需要设置 ajax 数据参数......至少像
data: request.term这样的东西。响应回调需要获取已经过滤的项目。 -
对于edit2,这是正确的功能。如果您想显示更少的项目,您需要通过发送 request.term 在服务器上对其进行过滤。
标签: ajax json jquery-ui autocomplete