Awesomplete: использовать пробел в качестве разделителя для автоматического предложения нескольких значений - PullRequest
0 голосов
/ 13 марта 2020

Я довольно новичок в скрипте java, и я использовал библиотеку автозаполнения от Awesomplete и использовал ее для нескольких значений, где автозаполнение для слов будет отображаться при разделении запятой, что работает нормально.

Работа с автозаполнением для нескольких слов, разделенных запятыми

Сценарий

function f(){
      alert("called");
  var input = document.getElementById("myinput");
  new Awesomplete(input, {
        filter: function(text, input) {
            return Awesomplete.FILTER_CONTAINS(text, input.match(/[^,]*$/)[0]);
        },

        item: function(text, input) {
            return Awesomplete.ITEM(text, input.match(/[^,]*$/)[0]);
        },

        replace: function(text) {
            var before = this.input.value.match(/^.+,\s*|/)[0];
            this.input.value = before + text + " , ";
        }
    });
  }

Теперь я хочу сделать То же самое, когда я использую слова с пробелом, он должен предлагать автозаполнение для слов, разделенных пробелами. Например: мне нужно выполнить автозаполнение для «Мое имя - Джон» вместо «Мое, Имя, Иоанн».

Я пытался с

function f(){
      alert("called");
  var input = document.getElementById("myinput");
  new Awesomplete(input, {
        filter: function(text, input) {
            return Awesomplete.FILTER_CONTAINS(text, input.match(/[^,]*$/)[0]);
        },

        item: function(text, input) {
            return Awesomplete.ITEM(text, input.match(/[^,]*$/)[0]);
        },

        replace: function(text) {
            var before = this.input.value.match(/^.+,\s*|/)[0];
            this.input.value = before + text + "  "; //tried using space as delimiter
        }
    });
  }

Но он показывает автозаполнение только для первого слова, так как я могу заставить это работать?

1 Ответ

1 голос
/ 13 марта 2020

Вы можете заменить запятую в шаблонах регулярных выражений на пробелы. Попробуйте следующее

filter: function(text, input) {
    return Awesomplete.FILTER_CONTAINS(text, input.match(/[^ ]*$/)[0]);
},

item: function(text, input) {
    return Awesomplete.ITEM(text, input.match(/[^ ]*$/)[0]);
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...