我想用小写的jquery自动完成插件。该数组包括大写,小写字。当我在文本框中写文本时,jquery应该将该文本转换为小写,并将数组单词转换为小写,然后匹配单词。
var names = [{
value: "1",
label: "Jon Kerer"},
{
value: "2",
label: "Scott MART"},
{
value: "3",
label: "Sel HURGE"}
];
$("#myInput").autocomplete({
focus: ..... ?
select : .... ?
source : ... ?
});
答案 0 :(得分:2)
您需要创建一个字符映射并对名称进行一些解析。这只是一些角色的入门名单。您可以尝试使用一些全球化库来查找完整的集合
DEMO: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));
}));
}
});
答案 1 :(得分:0)
使用toLowerCase()将字符串转换为小写:
var string = 'Test String';
string = string.toLowerCase(); //string is now 'test string'
我不确定你是如何“匹配”单词的,但是你应该可以对数组中的值使用相同的函数,然后根据需要进行比较/匹配。