为jQueryUI自动完成源数据使用不同的属性名称

时间:2016-06-27 14:01:46

标签: jquery jquery-ui autocomplete jquery-ui-autocomplete

jQueryUI自动完成需要以下来源:

[ { label: "Choice1", value: "value1" }, ... ]

对于我的应用程序,我的网络服务器使用cURL从API获取数据。 labelvalue应该相同,所以我只需要其中一个。服务器返回id变量,我可以在select回调中访问该变量并且不会造成任何问题。最后,它不使用属性名称“label”或“value”,而是使用属性名称“name”。例如,我的数据是:

[ { name: "Choice1", id: "1" }, ... ]

问题:我是否需要在将API数据发送到自动完成之前对其进行迭代,还是可以将自动完成配置为使用属性名称“name”而不是属性名称“label”或“value”?

1 个答案:

答案 0 :(得分:1)

您可以使用source

的功能执行此操作
  

功能:第三种变体(回调)提供了最大的灵活性,可用于将任何数据源连接到自动填充。回调有两个参数:

     

request对象,具有单个术语属性,该属性引用文本输入中当前的值。例如,如果用户在城市字段中输入“new yo”,则自动填充术语将等于“new yo”。

     

一个response回调,它需要一个参数:向用户建议的数据。应根据提供的术语过滤此数据,并且可以采用上述任何简单本地数据格式。在提供自定义源回调以处理请求期间的错误时,这很重要。即使遇到错误,也必须始终调用响应回调。这可确保窗口小部件始终具有正确的状态。

一个例子:

$( ".selector" ).autocomplete({
  source: function(req, resp){
    // Get your curl data
  }
});

如果您编辑问题并包含一些示例代码,我可以改进您对您的回答。