我做了 jQuery UI - autocomplete
,其中添加了以下条件:
这里我犯了一个错误,当我输入确切选项时,它没有被选中。
例如:
var json = ["JOAQUIN", "BERNARDINO", "MODOC", "ALASKA", "MADERA", "ANDERSON",
"Kingston", "Kala", "Aka"];
- 我输入
aka
,不接受。- 我还尝试了
醇>Aka
,但仍不接受。
如何重现:
在
textbox
中输入以上文字后,只需focusout
- 值 将被清空。我想处理aka = Aka = AKA
(有/无选择选项列表)
PS:我不是要求代码,我犯了一个小错误,我需要它才是正确的。
这是我的fiddle,您可以轻松地重现该异常。
如何更改我的代码才能像这样工作。请分享您的建议,并指出我在正确的方向上按顺序排列条件。
答案 0 :(得分:2)
如果您将事件更改为关闭而不是更改事件,该怎么办?然后检查值是否在数组中,如果没有清除容器。这将要求您在输入值时匹配大小写。如果你想忽略大小写,你可以在搜索数组之前将json数组转换为小写,将值转换为小写。
var json = ["JOAQUIN", "BERNARDINO", "MODOC", "ALASKA", "MADERA", "ANDERSON", "Kingston", "Kala", "Aka"];
$('input').autocomplete({
source: function (request, response) {
var matches = $.map(json, function (json) {
if (json.toUpperCase().indexOf(request.term.toUpperCase()) === 0) {
return json;
}
});
response(matches);
},
close: function(event, ui) {
var index = jQuery.inArray($('input').val(), json);
if (index == -1) {
$('input').val("");
}
}
});
答案 1 :(得分:0)
据我所知documentation,只有在选择下拉项目(点击)时才会设置UI属性,因此您必须在更改功能中添加验证以手动检查值。