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 回答