1
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) 
4

2 回答 2

3

The source should be an array, not a string

You need

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;
        }
    })
});

Demo: Fiddle or Fiddle

于 2013-08-01T04:57:25.637 回答
1

您的源 x 在代码的其他地方不可见,我相信它是一个 URL,并且由于它给出了 tou 提到的 404,这意味着该资源在服务器上不存在。

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

[{'label' : dataValue, 'value' : dataValue}]
于 2013-08-01T05:10:35.283 回答