无法用数据填充自动填充功能

时间:2013-08-01 04:54:37

标签: jquery autocomplete

var first = true;
var json = '[';
if (!first) {
    json += ',';
} else {
    first = false;
}
// $.each(data, function(i, elem) {
json += '{label:"kasun"}';


json += ']';
console.log(json);
$("#p_name").autocomplete({
    minLength: 2,
    source: x,
    focus: function (event, ui) {
        $("#p_name").val(ui.item.label);
        return false;
    },
    select: function (event, ui) {
        return false;
    }
})

我尝试上面的代码来填充自动完成数据。当我尝试这个我得到以下错误。 如果您有其他选择请告诉我

    GET http://localhost/NEW/patient_channel/[%7Blabel:%22kasun%22%7D]?term=ka 404 (Not Found) 

2 个答案:

答案 0 :(得分:3)

源应该是数组,而不是字符串

你需要

var json = [];

// $.each(data, function(i, elem) {
json.push({label:"kasun", value:"kasun"})
//or json.push('kasun')

//});

console.log(json);

jQuery(function ($) {
    $("#p_name").autocomplete({
        minLength: 2,
        source: json,
        focus: function (event, ui) {
            $("#p_name").val(ui.item.label);
            return false;
        },
        select: function (event, ui) {
            return false;
        }
    })
});

演示:FiddleFiddle

答案 1 :(得分:1)

您的源x在代码的其他位置不可见,我相信它是一个URL,因为它正如tou所述给出404,意味着资源在服务器上不存在。

首先修复404,之后您必须格式化服务器返回的数据,格式为自动完成所需的格式,如下所示。

[{'label' : dataValue, 'value' : dataValue}]