gpt4 book ai didi

javascript - formatResult 和 formatItem 选项在 JQuery 自动完成中有什么作用?

转载 作者:可可西里 更新时间:2023-11-01 02:33:03 25 4
gpt4 key购买 nike

我有点困惑,JQuery Autocomplete 插件中的 formatResult 和 formatItem 是做什么的?

我有一个返回逗号分隔字符串的函数(来自 Django),但我的自动完成功能无法将字符串拆分为单独的条目/行,我如何使用自动完成功能实现此目的?

例如,返回的结果看起来像这样,这就是自动完成显示的内容:-["一个","oneTwo", "Onethree", "anotherOne"]

我希望在自动完成字段中显示时像这样拆分:-

one
oneTwo
Onethree
anotherOne

我觉得我可以使用 formatResult 和 formatItem,但我不知道如何使用,那里没有很好的例子!!

我在 html 模板中的代码:

 function autoFill(){
$("#tags").autocomplete("/taglookup/", {
width: 320,
max: 4,
highlight: false,
multiple: true,
multipleSeparator: " ",
scroll: true,
scrollHeight: 300
});
}

正在使用 Dajango 处理 GET 请求。

加思

最佳答案

formatItem 格式化项目以显示在下拉列表中,而 formatResult 格式化项目以在选择后显示在输入框中。

默认情况下,自动完成期望从指定的 url 中获取数据,格式如下:

foo|bar|baz|bing
zaz|ding|blop|grok

其中每一行是一行数据;每行都是它传递给 formatItemformatResult 的数据。您可能希望采用阻力最小的路径并以喜欢的方式返回数据。

如果您想使用不符合自动完成假设的数据,您将需要使用(据我所知未记录)解析选项来识别一个函数来解析您的 ajax 请求的结果。在我看来,您的 django View 正在返回一个数组而不是返回一个格式化的字符串。将数组格式化为 jquery 所希望的格式:

return HttpResponse('|'.join(your_array), mimetype='text/plain')

这是一个使用非标准自动完成数据 (JSON) 进行自动完成的示例:

<script type="text/javascript"> 
format_item = function (item, position, length){
return item.title;
}

// Handle data from ajax request
prep_data = function(data){
tmp = $.evalJSON(data);
parsed_data = [];
for (i=0; i < tmp.length; i++) {
obj = tmp[i];
// Other internal autocomplete operations expect
// the data to be split into associative arrays of this sort
parsed_data[i] = {
data: obj ,
value: obj.isbn13,
result: obj.title
};
}
return parsed_data
}

$(document).ready(function(){
$("#fop").autocomplete({
url : "{% url book-search %}",
// undocumented
parse: prep_data,
formatItem: format_item,
});
})

</script>

关于javascript - formatResult 和 formatItem 选项在 JQuery 自动完成中有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/737453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com