У меня есть текстовый ввод и пустой элемент списка данных 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"
к элементу ввода. Это помогло решить мою проблему, но я до сих пор не уверен, почему.
Вот почему я хотел спросить - какова связь между опциями списка данных и автозаполнением ввода и почему это решает мою проблему?