javascript – formatResult和formatItem选项在JQuery自动填充中有什么作用?

前端之家收集整理的这篇文章主要介绍了javascript – formatResult和formatItem选项在JQuery自动填充中有什么作用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在这里有一点困惑,formatResult和formatItem在 JQuery Autocomplete插件中做了什么?

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

例如,返回的结果如下所示,这是自动填充显示的:
[“一”,“一二”,“一人”,“另一人”]

我想要在自动填充字段中显示如下:

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格式化项目以在输入框中进行选择.

默认情况下,自动填充需要从指定的网址获取数据,格式为:

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

其中每一行都是一行数据;每行都是传递给formatItem和formatResult的数据.您可能希望采取最小阻力的路径,并以其喜欢的方式返回数据.

如果要使用不符合自动完成假设的数据,则需要使用(无证据的,尽可能分辨)解析选项来识别用于解析您的ajax请求结果的函数.在我看来,你的django视图返回一个数组,而不是返回一个格式化的字符串.要将数组格式化为jqu​​ery,请执行以下操作:

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>

猜你在找的jQuery相关文章