2009-02-09 88 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 |

您可能想檢查您使用的文檔!