0

jquery オートコンプリート プラグインを小文字で動作させたい。配列には、大文字、小文字の単語が含まれます。Buテキストボックスにテキストを書き込むと、jqueryはそのテキストを小文字に変換し、配列の単語を小文字に変換してから単語に一致させる必要があります。

var names = [{
    value: "1",
    label: "Jon Kerer"},
{
    value: "2",
    label: "Scott MART"},
{
    value: "3",
    label: "Sel HURGE"}
];​

$("#myInput").autocomplete({
    focus: ..... ? 
    select : .... ? 
    source : ... ?
});​
4

2 に答える 2

2

キャラクター マップを作成し、名前の解析を行う必要があります。これは、一部のキャラクターのスターター リストです。いくつかのグローバリゼーション ライブラリを試して、完全なセットを見つけることができます

デモ: http://jsfiddle.net/uQK5s/

var accentMap = {
    "á": "a",
    "ö": "o",
    "Ş": "S",
    "á": "a"
};
var normalize = function(term) {
    var ret = "";
    for (var i = 0; i < term.length; i++) {
        ret += accentMap[term.charAt(i)] || term.charAt(i);
    }
    return ret;
};

$("#test").autocomplete({
    source: function(request, response) {
        var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
        response($.grep(names, function(value) {
            value = value.label || value.value || value;
            return matcher.test(value) || matcher.test(normalize(value));
        }));
    }
});
于 2012-06-25T12:32:46.930 に答える
0

toLowerCase() を使用して、文字列を小文字に変換します。

var string = 'Test String';
string = string.toLowerCase(); //string is now 'test string'

単語をどのように「一致」させているかはわかりませんが、配列内の値に同じ関数を使用して、必要に応じて比較/一致できるはずです。

于 2012-06-25T12:04:53.270 に答える