Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 远程设置自动完成的源_Jquery_Jquery Ui - Fatal编程技术网

Jquery 远程设置自动完成的源

Jquery 远程设置自动完成的源,jquery,jquery-ui,Jquery,Jquery Ui,可能重复: 我有一个自动完成,我想挂到我的API返回所有客户帐号。问题是我的API返回一个对象:AccountNumber、InvoiceNumber、Name、Address等。。当我试图将我的来源设置为AccountNumber时,如下所示: $.getJSON('/api/Customers', function(data) { $("#AccountNumber").autocomplete({ source: data.AccountNumber,

可能重复:

我有一个自动完成,我想挂到我的API返回所有客户帐号。问题是我的API返回一个对象:AccountNumber、InvoiceNumber、Name、Address等。。当我试图将我的来源设置为AccountNumber时,如下所示:

$.getJSON('/api/Customers', function(data) {
    $("#AccountNumber").autocomplete({
        source: data.AccountNumber,
        minLength: 4
    });
});
我得到了这个错误:

Uncaught TypeError: Property 'source' of object #<Object> is not a function
Uncaught TypeError:对象#的属性“source”不是函数

知道我做错了什么吗?

因为回调返回的是一个对象,所以必须提取数据并将其放在一个arary中。只要
data
是帐户对象的数组,就可以尝试以下方法:

$.getJSON('/api/Customers', function(data) {
    var acctNums = [];
    for(a in data) {
        acctNums.push(data[a].AccountNumber);
    }   

    $("#AccountNumber").autocomplete({
        source: acctNums,
        minLength: 4
    });
});
另一种选择是只添加一个只返回客户帐号数组的不同请求路由。这样,您就可以这样传递它:

$.getJSON('/api/Customers/AccountNums', function(data) {
    $("#AccountNumber").autocomplete({
        source: data,
        minLength: 4
    });
});
最后,你可以让我来。您需要创建一个不同的请求路由,该路由只为自动完成返回一个JSON对象数组(每个对象包含
value
label
属性)。然后只需使用路由的绝对或相对URL即可获取数据。下面是一个小例子:

$("#AccountNumber").autocomplete({
    // This GET Request returns an Array of Objects used for Auto-Complete:
    // [ { label: "Choice1", value: "value1" }, ... ]
    source: '/api/Customers/AccountNumsAuto',
    minLength: 4
});

jQuery UI自动完成的源属性必须是:

  • 结果数组:
    源:[“string1”、“string2”、“string3”、“string4”]

  • 字符串(处理查询的远程PHP页面的url),这将触发对此页面的ajax请求,参数名为
    term
    ,其中包含搜索值:
    source:“page.PHP”

  • 使用两个参数调用的函数
    请求
    响应
    。第一个包含搜索值(
    request.term
    ),第二个包含必须用值填充的对象

您应该阅读jqueryui。
在您的情况下,您可以将JSon转换为结果数组