2009-02-09 70 views
2

我有一个由空格分隔的值的字符串,我返回到Jquery调用,但它不会将单词分隔成行。数据是否应该以字符串或列表或其他方式返回?JQuery AutoComplete结果格式?

回答

5

默认情况下,它希望结果由换行符分隔。如果您提供一个由空格分隔的值列表,您将需要提供一个解析函数,它将获取返回的数据并将其转换为数组。如果您提供一个值列表,情况也是如此。

下面是我正在处理的项目中的一个示例,该示例从MVC操作返回通过JSON的字符串列表。

$('#eventName').autocomplete('<%= Url.Action("SearchEvent", "Donor") %>', { 
    dataType: "json", 
    formatItem: function(data,i,max,value,term){ 
     return value; 
    }, 
    parse: function(data){ 
     var array = new Array(); 
     for(var i=0;i<data.length;i++) 
     { 
      array[array.length] = { data: data[i], value: data[i], result: data[i] }; 
     } 
     return array; 
    } 
}); 
+0

是的,“解析”覆盖是要走的路。 jQuery真的需要更好的Autocomplete文档(截至这个评论,它仍然“计划发布w/jQuery 1.7”)。但是,如果你正在做文件现有的代码,他们应该记录所有。 使用解析重写的唯一问题是现在自动完成器的所有函数都将通过新的Array()。所以,你必须解释这一点。 tvanfosson展示了如何用formatItem覆盖来说明显示的格式。但是请注意,您可能需要重写result()方法。 – eduncan911 2009-07-11 15:47:59

1

还有一个自动补全插件,希望有一个由'|'分隔的字符串,像这样的字符:

item 1 |项目2 |

您可能想检查您使用的文档!