@ivansimonov1984

Как находить при помощи autocomplete?

Есть код - Fiddle

Поиск работает только по первой букве названия

Например, если ввести слово land - ничего не находит

А хотелось бы ввести страны с данным словом - Netherlands, Poland, Swaziland и т.д

Как ввести все слова (в данном случае страны) с совпадением (не важно начало или окончание слова)?
  • Вопрос задан
  • 84 просмотра
Решения вопроса 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
/*check if the item starts with the same letters as the text field value:*/
        if (arr[i].substr(0, val.length).toUpperCase() == val.toUpperCase()) {

Здесь меняйте условие на то, что вам нужно.
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
21 строка - меняйте логику, ищите субстроку не только от начала.
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега JavaScript
Заменить:

  1. val = this.value

    на

    val = this.value.toUpperCase()

  2. if (arr[i].substr(0, val.length).toUpperCase() == val.toUpperCase()) {

    на

    if (arr[i].toUpperCase().includes(val)) {

  3. b.innerHTML = "<strong>" + arr[i].substr(0, val.length) + "</strong>";
    b.innerHTML += arr[i].substr(val.length);

    на

    b.innerHTML = arr[i]
      .split(RegExp(`(${val})`, 'i'))
      .map((n, i) => i & 1 ? `<b>${n}</b>` : n)
      .join('');


Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы