Прототип Rails3 Автозаполнение не отображается должным образом в IE8 - PullRequest
1 голос
/ 23 декабря 2010

В моем проекте rails3 мне пришлось реализовать простое текстовое поле, div и помощник по автозаполнению в моем файле вида. Автозаполнение хорошо работает во всех браузерах, кроме IE. элемент div, в который попадают результаты, постоянно меняет свой атрибут style. вот код

            .. #form related other code
            <%= text_field_tag('location') %>
            <div id="location_auto_complete" class="auto_complete"> </div>
        <%= auto_complete_field('location', :url => locations_path(), :indicator => 'locations_indicator', :select => 'value') %>

отлично работает во всех браузерах. но в IE окно с автоматическими предложениями перемещается к какой-то другой части страницы. Атрибут style динамически добавляется к этому элементу div при каждом ответе от сервера.

Я использую последний плагин для автозаполнения fork of rails https://github.com/fidel/auto_complete. Пожалуйста, помогите, я застрял с этой проблемой в течение нескольких часов.

1 Ответ

0 голосов
/ 04 января 2011

Я столкнулся с этой же проблемой. Очевидно, это проблема с функцией Prototype getOffsetParent и IE8:

https://prototype.lighthouseapp.com/projects/8886-prototype/tickets/618-getoffsetparent-returns-body-for-new-hidden-elements-in-ie8-final#ticket-618-9

Довольно неудобно для Prototype, что это все еще не исправлено с тех пор, как этот поток с марта 2009 года.

В любом случае, как упоминает кто-то в этом потоке, вы можете отредактировать файл prototype.js и изменить первую строку getOffsetParent следующим образом:

  getOffsetParent: function(element) {
    if (element.offsetParent && Element.visible(element)) return $(element.offsetParent);
  ...

&& Element.visible(element) - новая часть. Это исправило это для меня. Обязательно выполните полное обновление (shift-reload) в IE8, чтобы он принимал новый JS после ваших изменений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...