Параметры Datalist и поведение автозаполнения ввода - PullRequest
0 голосов
/ 07 июня 2019

У меня есть текстовый ввод и пустой элемент списка данных html сразу после него и код JavaScript, который выглядит примерно так:

  $("#city_input").on("input", function(e) {
    var term = e.target.value;

    if (term.length > 2) {
      $.ajax({
        url: "cities",
        type: "get",
        data: {
          term: term
        }
      })
      .success(function(data) {
        fillCityOptions(data);
      })
      .fail(function(jqXHR, textStatus, errorThrown){
        console.log(errorThrown)
      });
    }
  })

Где функция fillCityOptions() использует json, возвращаемый из вызова AJAX, который представляет собой массив значений города, а также создает и добавляет параметры для списка данных.

Теперь все это работает в Chrome с самого начала. Однако в Firefox и Safari, несмотря на то, что параметры создавались правильно, они не отображались на странице, пока я не нажал клавишу Backspace во вводе.

Я наткнулся на второй комментарий к первому ответу на Как вы обновляете список данных HTML5, используя JavaScript? , в котором упоминается добавление autocomplete="off" к элементу ввода. Это помогло решить мою проблему, но я до сих пор не уверен, почему.

Вот почему я хотел спросить - какова связь между опциями списка данных и автозаполнением ввода и почему это решает мою проблему?

...