0
Не ошибка

fixData() не находит подсказку

Александр Ефремов 7 лет назад обновлен Анастасия 7 лет назад 5

Метод fixData() возвращает пустое значение в некоторых случаях, покажу сразу на примере:

1. пишу в input "Михайловск" - выбираю "Ставропольский край, Шпаковский р-н, г Михайловск" - через метод formatSelected оставляю в input только "Михайловск".


2. поля перезагружаются ajax-ом, и я вызываю метод fixData() для получения объекта подсказок - подсказка не находится, поле сбрасывается. Если в formatSelected ставлю "Шпаковский р-н, г Михайловск" или "Ставропольский край, г Михайловск" - подсказка подхватывается, но мне нужен только город в этом поле.


3. Методом тыка выяснил, что аналогичная ситуация со всеми населенными пунктами, где указывается район - "Респ Бурятия, Муйский р-н, поселок Витим" ("поселок Витим" - подсказку не находит) и т.п..


Прошу подсказать, как решить эту проблему, спасибо.

Ответ

Ответ

Александр, спасибо за ссылку!


1) как вариант, можно подсказывать город с учетом региона, передав его название в настройке constraints. Единственное, названия регионов должны быть как в КЛАДР. Остальную часть адреса можно подсказывать с ограничением по городу.


2) метод fixData() применяется к конкретному полю, поэтому он будет работать только на нём и с учетом тех полей, которые с ним связаны (через параметр constraints для гранулярных).


Если остались вопросы, пожалуйста, спрашивайте)

На рассмотрении

Александр, fixData() возвращает пустое значение, т.к. по запросу только с названием города возможно несколько вариантов подсказок. Однозначно определить адрес таким образом нельзя.


Насколько я поняла, в поле ввода вы не хотите видеть регион с городом. Как насчет использовать fixData() в гранулярных подсказках (регион будет отдельно от города)?


Если нет, уточните, пожалуйста, как бы вы хотели настроить поведение подсказок? Можно дать ссылку на страницу с подключенными подсказками, посмотрим на конкретном примере.

Анастасия, благодарю за ответ.

Гранулярные подсказки не подходят по двум причинам:

1) невозможно ввести номер квартиры ни в одно из полей с подсказками (нужно вместе с номером дома);

2) на одной странице может быть несколько групп полей с подсказками, которые не связаны друг с другом - Адрес доставки, Адрес оплаты, Адрес покупателя и т.д.. - как будут вести себя гранулярные подсказки и метод fixData() в таких случаях?


Про fixData() вы пишете: "Метод проверяет вышестоящие поля и принудительно запрашивает у сервера данные в случае, если какие-то из них заполнены." - как будет работать, если имеется по 3 разных поля с подсказками города, региона и адреса, и я вызываю fixData() для одного из полей адреса?



Вот ссылка на демо-сайт (добавить в корзину товар и нажать Оформление заказа).

Ответ

Александр, спасибо за ссылку!


1) как вариант, можно подсказывать город с учетом региона, передав его название в настройке constraints. Единственное, названия регионов должны быть как в КЛАДР. Остальную часть адреса можно подсказывать с ограничением по городу.


2) метод fixData() применяется к конкретному полю, поэтому он будет работать только на нём и с учетом тех полей, которые с ним связаны (через параметр constraints для гранулярных).


Если остались вопросы, пожалуйста, спрашивайте)

Сервис поддержки клиентов работает на платформе UserEcho