2011-12-13 77 views
3

我用下面的代碼來搜索一個Ajax文件與自動完成插件的查詢編碼的字符:jQuery的自動完成 - 結果表明

$("input.search_bar").autocomplete("/autocomplete/", { 
    scrollHeight: 300, 
    minChars: 3 
}); 

搜索結果就像HTML編碼名稱:

鮑勃的商店(真Bob%39s Store) 比爾店(真Bill%39s Shop) 等等

自動完成下拉列表顯示了正確的HTML像這樣:

Bob的商店 比爾的店

但是,當我選擇其中一個結果,結果移動到輸入框,輸入字段顯示轉義值,像這樣:

Bob%39s Store

怎麼辦我使用jQuery Autocomplete插件來格式化結果,以在選擇結果時顯示未轉義的值?

我嘗試了以下插件功能沒有任何的運氣:

$("input.search_bar").autocomplete("/autocomplete/", { 
    scrollHeight: 300, 
    minChars: 3, 
    formatResult: function(row) { 
     return unescape(row); 
    } 
}); 
+0

你可以使用一點PHP的使用了preg_replace() –

回答

1

試試這個代碼,

$("input.search_bar").autocomplete("/autocomplete/", { 
    scrollHeight: 300, 
    minChars: 3, 
    formatResult: function(row) { 
     return $('<div/>').html(row).html(); 
    } 
}); 
0

嘗試decodeURI()

$("input.search_bar").autocomplete("/autocomplete/", { 
    scrollHeight: 300, 
    minChars: 3, 
    formatResult: function(row) { 
     return decodeURI(row); 
    } 
}); 
+0

謝謝,但沒有骰子... –

+0

你能挖掘到自動完成代碼,看看他們使用逃脫變量有什麼功能?如果它是一個標準函數,那麼它應該有相反的,如果不是,那麼它看起來像你創建一個:)。它看起來像unicode或ascii(39 =撇號) – themerlinproject

1

我有同樣的問題。 JSON輸出的源代碼是一個JSP文件。

JSON使用示例顯示使用單引號分隔我更改爲雙引號的建議條目。

直到我改用< c:out value =「....」>標記才簡單地使用$ {....},它仍然不起作用。這解決了問題。 < c:out >標記會自動轉義輸出。

如果您不使用Java,請確保您用於生成JSON的函數不會自動編碼/轉義值。我沒有注意到這一點,直到我用一個單引號擊中了一個人的名字。