下拉式自动完成

时间:2019-03-17 11:58:29

标签: javascript php jquery ajax

从属自动完成下拉菜单,当在输入中键入文本时,它仅由首字母自动完成,以使其与任何字母一起工作,例如,如果我键入- “哟”它应该在下拉菜单中显示“纽约”。这是我的代码,但只显示首字母。

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>');

}}}

2 个答案:

答案 0 :(得分:1)

您是否尝试过将.startsWith(str)切换为.includes(str)?

更具体地说:

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

答案 1 :(得分:1)

使用indexOf

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

或者使用includes更新的方法:

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