我制作了一个 jQuery UI - 自动完成
,其中添加了以下条件:
- 已排序的选项列表
- 强制选择一个选项
这里我犯了一个错误,当我输入确切的选项时,它没有被选中。
例如:
var json = ["JOAQUIN", "BERNARDINO", "MODOC", "ALASKA", "MADERA", "ANDERSON",
"Kingston", "Kala", "Aka"];
- I type
aka
, it is not accepting.- I also tried
Aka
, still it is not accepting.
如何重现:
After typing the above text in
textbox
, justfocusout
- The value will be emptied. I want to handleaka = Aka = AKA
(with/without selecting from option list)
PS:我不是要求代码,我犯了一个小错误,我需要它是正确的。
这是我的 fiddle ,您可以在其中轻松重现异常。
如何更改我的代码以使其像这样工作。请分享您的建议,并为我指明正确的方向,以安排条件。
最佳答案
如果将事件更改为关闭而不是更改事件会怎样。然后检查该值是否在数组中,如果不在则清除容器。这将要求您在输入值时匹配大小写。如果您想忽略大小写,可以在搜索数组之前将 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("");
}
}
});
关于javascript - jQuery UI 自动完成 - 在 focusOut 上未选择匹配的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19022062/