0
Answered

Повторная инициализация плагина подсказок с UpdatePanel ASP.NET

Mihon 3 years ago • updated by Антон 3 years ago 4

Работаем с DaData из ASP.NET, написали клиентский контрол для ввода адреса с использованием DaData. Есть проблема при использовании контрола на UpdatePanel - необходимо вручную переинициализировать .suggestions, простое включение скрипта в HTML код не работает.

Пытаемся реализовать присвоение .suggestions руками после обновления, но, почему-то не работает:

$("input[type='text'],textarea").each(function() { this.suggestions = $("body").suggestions; this.suggestions(<параметры инициализации>)});


Тестовый стенд:

http://codepen.io/anon/pen/GrbyxB

Answer

Answer
Answered

Я рекомендую вынести код инициализации подсказок в функцию, и просто вызывать её:

function initSuggestions(selector) {
  $(selector).suggestions({ ... });
}

...
initSuggestions("#address-1");
initSuggestions("#address-2");
initSuggestions("#address-3");
Answer
Answered

Я рекомендую вынести код инициализации подсказок в функцию, и просто вызывать её:

function initSuggestions(selector) {
  $(selector).suggestions({ ... });
}

...
initSuggestions("#address-1");
initSuggestions("#address-2");
initSuggestions("#address-3");

Проблема в том, что банальный вызов $(selector).suggestions({ ... }); в сложных ситуациях выдаёт suggestions is undefined. Т.е. даже через селекторы jQuery глобальные расширения почему-то становятся недоступными для HTML разметки, которая приехала через ASP.NET UpdatePanel.

Окей, вам виднее. Я страшно далёк от ASP.NET UpdatePanel