简体   繁体   English

下拉列表自动完成

[英]Dropdown Autocomplete

Dependent autocomplete drop-down, when text is typed in input it auto-completes only by first letters how to make it work with any letter, an example if i type - "Yo" it should show "New York" in dropdown. 依赖的自动完成下拉菜单,当在输入中键入文本时,它仅由首字母自动完成,以使其与任何字母一起工作,例如,如果我键入“ Yo”,则下拉菜单中应显示“ New York”。 Here is my code for that but it shows only by first letters. 这是我的代码,但仅以首字母显示。

var states = {
  'Color': ['red', 'black', 'yellow', 'green', ],
  'Numbers': ['one', 'two', 'three', 'four']
};

function match(str) {
     str = str.toLowerCase();
     clearDialog();
 for (var i = 0; i < states.color.length; i++) {

  if (states.color[i].toLowerCase().startsWith(str)) {
jQuery('.dialog').append('<div>' + states.color[i] + '</div>');

}}}

Have you tried switching out .startsWith(str) to .includes(str)? 您是否尝试过将.startsWith(str)切换为.includes(str)?

to be more specific: 更加具体:

if (states.color[i].toLowerCase().includes(str)) {
    jQuery('.dialog').append('<div>' + states.color[i] + '</div>');
}

Use indexOf : 使用indexOf

if (states.color[i].toLowerCase().indexOf(str) !== -1) {
    jQuery('.dialog').append('<div>' + states.color[i] + '</div>');
}

Or a more up-to-date approach with includes : 或更新的方法includes

if (states.color[i].toLowerCase().includes(str)) {
    jQuery('.dialog').append('<div>' + states.color[i] + '</div>');
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM