2010-03-03 35 views
1

我正在使用jquery自動完成插件,但現在它所做的只是顯示一行下拉列表,當單擊它時,會將該詞注入輸入框。jquery自動完成,如何解析與url信息的JSON請求?

我想要的是它有一個超鏈接,所以點擊後,它會重定向到頁面。

是否有可能返回更豐富的json請求,該請求具有其他元數據,如url,image,並且會顯示在顯示的自動填充框中?

我在一個網站上看到過這樣做,但不確定他們是否必須修改自動完成插件才能正常工作?即,將json響應返回爲僅與文本列表相反。

回答

1

如果你在談論this plugin,下面應該工作:

假設你的JSON結果看起來是這樣的:

[ 
    { 
    name: 'Google', 
    image: 'http://google.com/logo.png', 
    href: 'http://google.com' 
    }, 
    { 
    name: 'Bing', 
    image: 'http://bing.com/logo.png', 
    href: 'http://bing.com/' 
    } 
    ... 
] 

你需要在自己的自定義解析函數來傳遞你的內選項。此功能需要返回格式的對象數組:{ data: object, value: string, result: string }

$('#myfield').autocomplete('/search', { 

    parse: function(data) { 
    return $.map(data, function(item) { 
     return { data: item, value: item.name, result: item.href }; 
    }); 
    }, 

    formatItem: function(item) { 
    return '<img src="' + item.image + '"/> ' + item.name; 
    } 

}) 
.result(function(event, item) { 
    location.href = item.href; 
}); 

有可能是一個更好的方式做鏈接,我知道我已經看到了其他自動完成/建議類型的插件,允許你這樣做這更容易,但我不記得哪些。希望這可以幫助。