0
Not a bug

Метод update в подсказках

Anonymous 5 years ago updated by Антон 5 years ago 7
Добрый день.

Не могу разобраться с работой методов плагина. Дополняю стандартный код подключения вызовом метода и получаю ошибку "Uncaught TypeError: undefined is not a function" в строке вызова функции update()

Вот сам код:
<input id="address" name="address" type="text" size="100"/>
<link href="https://dadata.ru/static/css/lib/suggestions-4.8.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<!--[if lt IE 10]>
    <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.1/jquery.xdomainrequest.min.js"></script>
<![endif]-->
<script type="text/javascript" src="https://dadata.ru/static/js/lib/jquery.suggestions-4.8.min.js"></script>

<script type="text/javascript">
    var suggestionsPlugin = $("#address").suggestions({
        serviceUrl: "https://dadata.ru/api/v2",
        token: token,
        type: "ADDRESS",
        /* Вызывается, когда пользователь выбирает одну из подсказок */
        onSelect: function(suggestion) {
            console.log(suggestion);
            suggestionsPlugin.clear();
        }
    });
    $("#address").val('Москва');
    suggestionsPlugin.update();
</script>
Under review
Добрый вечер,

Для получения инстанса плагина нужно сделать отдельные вызовы
$("#address").suggestions({....});
И потом
var suggestionsPlugin = $("#address").suggestions();

Либо за один раз, но дернуть .suggestions() дополнительно:
var suggestionsPlugin = $("#address").suggestions({
.....
}).suggestions();

Посмотреть как это делается (с учетом Вашего кода) можно тут:
http://codepen.io/anon/pen/gbadyZ

Сообщите, удалось ли решить проблему?

Добрый день.

Да теперь ошибки нет. Но я думал что метод update() делает новый запрос подсказок и показывает результаты. Хотел сделать что-то на подобии выбора адреса как у Вас в примере. https://dadata.ru/suggestions/ с возможностью ввода города/улицы и т.д.. Но повторные подсказки не показываются. Может я делаю что-то не так?
Мы не поняли, что вы хотите сделать и что именно у вас не получается. Можете на конкретном примере?
Кодом в первой записи,  пытаюсь программно установить часть строки в поле ввода, к которому подключены подсказки и заново сделать запрос. Как у Вас на странице адрес собирается из города, улицы и т.д., а потом выводятся подсказки под основным полем.
В примере на сайте подсказки под основным полем выводятся, когда вы помещаете в него курсор.

Если изменить отдельное поле улицы, то в основном поле просто меняется значение:

$street.change(function() {
  $address.val(addressToString());
});

Метод update() не используется.