2014-03-06 45 views
0

我正在使用typeaheadjs,我想音譯搜索查詢-before-它被髮送到服務器。音譯查詢字符串typeahead.js

@Edvad Zagorski給優秀的PHP數組,這樣做:https://stackoverflow.com/a/6837302/377192

但我會需要的是做同樣的beforeSend()方法。因此,如果用戶開始喜歡

čikago 

輸入的東西,將派遣

cikago 

到服務器。

我嘗試了無數的小技巧:json_encode,raw,url_encode ...沒有工作,因爲我真的沒有那些編碼。

這有可能嗎?我想問題是beforeSend()方法接收urlEncodedQuery,而不是真正的。

回答

0

我上GitHub提出的基於標記生成器的解決方案:

var charMap = {'àáâããäå': 'a', 'èéêë': 'e', 'ç': 'c', 'ß': 'ss', /* ... */}; 

var normalize = function(str) { 
    $.each(charMap, function(chars, normalized) { 
    var regex = new RegExp('[' + chars + ']', 'gi'); 
    str = str.replace(regex, normalized); 
    }); 

    return normalized; 
} 

var queryTokenizer = function(q) { 
    var normalized = normalize(q); 
    return Bloodhound.tokenizers.whitespace(normalized); 
}; 

var engine = new Bloodhound({ 
    // ... 
    queryTokenizer: queryTokenizer 
});