Клуб API Карт

SearchControl глючит, не вводится ничего, помогите найти причину

Пост в архиве.

Добрый день уважаемые коллеги.
Столкнулся с такой вот проблемой:

Карту показываю в диалоге jQuery UI

Поиск добавляю: map.addControl(new YMaps.SearchControl()

Менял языки ввода, браузеры - ничего. Фаербаг тоже молчит, ошибок нет. 

Подскажите куда копать? Спасибо.

9 комментариев

очень полезная картинка.

Специалистов, по картинкам определяющих что произошло, я видел только в передаче "битва эктрасенсов" =)

Ссылка на страницу с проблемой была бы куда полезнее

Это в админ панели Joomla, поэтому дать ссылку не могу :)

так сделайте минимальный пример в котором будет только jQueryUI и карта с SearchControl-ом

Александр Новиков
28 января 2016, 05:19
а не перехватывает ли у вас jQuery UI все нажатия клавиш.
Помнится была за ним такая особенность - для поддержки горячих клавиш.
И даже кажется можно было ему как-то сказать что бы он "пропускал" событие дальше.

Интересное предположение, сейчас проверю. Спасибо.

Нет нажатия клавишь не перехватываются. Добавил свой input - всё работает.

В поиск правой кнопочкой из меню можно вставить свой текст, и даже найти результаты, но уже вставленный текст немогу даже выделить, ни клавиатурой ни мышкой.

актуальная проблема, причем именно с диалогом!

дайте ссылку на проблему

// для тех кому интересно только решение - смотреть в конец

проблема в оверлее модального окна. Если для диалога указать modal:false, то все будет работать. Если же включен modal:true, то jquery обрабатывает все события элементов, которые должны находится за оверлеем, включая и SearchControl (у него position:absolute, поэтому формально он не принадлежит диалогу). События обрабатываются на предмет значения z-index, если его значение меньше чем z-index оверлея, то всплытие события останавливается. При этом z-index оверлея устанавливается как максимальное значение среди текущих элементов, т.е. заранее увеличить значение элемента не получится, т.к. у оверлея все равно будет больше. Косяк jquery здесь в том, что z-index элементов замыкается, т.е. после создания диалога менять значение тоже смысла нет. В общем самый простой способ решения - установить опцию z-index диалога, заранее меньше, чем z-index у SearchControl (а на данный момент - это меньше 1000).

таким образом, решение - это в конструкторе диалога указать

        $("#dialog").dialog ( {
            modal:true,
            zIndex: 900   // значение меньше 1000
        } );