Подсказки Адрес: дать возможность произвольного ввода адреса
Всем привет!
Хочу позволить пользователю вводить адрес как он хочет, но предоставить ему возможность мышью подтвердить выбор соответствующего адресного объекта. Я уже "под капотом" раскидаю полученные данные по полям и т.д. Но пользователю нужно дать возможность вводить адрес так как он хочет: со страны ли начинает, с города, с дома, вперед-назад, может на три страницы ему нужно адрес расписать... То есть нужно, чтобы значение в поле #address не изменялось при выборе найденного объекта, а оставалось ровно тем же, каким его ввел пользователь.
Как я понял, либо triggerSelectOnSpace не про это, либо я не понял, как его "готовить", либо у меня почему-то не работает. Я правильно тогда понимаю, что нужно модифицировать функцию onSelect() ?
Ответ
Когда человек выбирает мышью вариант из списка, естественно и ожидаемо, что его выбор подставляется в текстовое поле. Так работает поисковая строка Яндекса и все остальные известные мне случаи автодополнения ввода.
Как перекрыть это поведение: запоминать введенное пользователем значение и возвращать его в обработчике formatSelected.
Все верно! Но тут у меня кейс такой, что в документе, с которым работает оператор системы адрес может быть написан весьма и весьма произвольным образом. Нам, естественно, нужно идентифицировать адрес по адресным системам и разбить его на город, улицу и т.д. Но с другой стороны, не менее (если не более!) важно, сохранить написание адреса именно в том виде, в котором мы его получили в документе. Задача "Подсказки" в данном случае не отформатировать адрес в "человеческий" вид, а предоставить нам возможность на базе "кривого", но необходимого для сохранения в базе данных написания, получить идентификатор адреса в адресных системах и "раскидать" его незаметно для оператора на составляющие. Может быть немного странный и нестандартный кейс, но тем не менее :)
"запоминать введенное пользователем значение" - в смысле на каждый onkeydown обновлять некую переменную и потом ее возвращать уже formatSelected или можно это значение как-то взять от объекта, переданного в .suggestions() ?
Например, сохранять в обработчике onSearchComplete. Его сигнатура function (query, suggestions) {}. Первый параметр и есть введенный пользователем текст.
Все получилось! Ура! А можно как-то встроенными средствами задизейблить подсказки, после того как сработало onSelect?
Сервис поддержки клиентов работает на платформе UserEcho
Когда человек выбирает мышью вариант из списка, естественно и ожидаемо, что его выбор подставляется в текстовое поле. Так работает поисковая строка Яндекса и все остальные известные мне случаи автодополнения ввода.
Как перекрыть это поведение: запоминать введенное пользователем значение и возвращать его в обработчике formatSelected.