Элемент select не обновляется при перезагрузке страницы в Firefox

суббота, 12 мая 2012 г.

Довольно трудно описать проблему в заголовке. Но попробую описать подробнее тут. Те, кто сталкивался с веб-разработкой, возможно, замечали странное поведение элемента select в в форме: если выбрать какие-то пункты и нажать F5 на странице, то эти пункты после обновления будут все еще выбраны. В исходное состояние они придут после нажатия Ctrl+F5.

Есть случаи, когда это крайне неудобно. Например: если на странице несколько завязанных друг на друга элемента select, получающие данные аяксом. В исходном состоянии это выглядит так:


То есть после выбора страны - появляется регион, после выбора региона появляется список городов.


И если после того как выбраны пункты мы нажмем F5, то увидим следующую картину:


А сами списки зависимых элементов будут пустыми и активными:


С одной стороны - можно при загрузке страницы через JS проверять состояние элементов и производить нужные действия. Но с другой стороны есть решение проще - для каждого элемента, где необходимо "корректное" поведение нужно атрибутом прописать autocomplete="off"

<select name="region" id="region_id" autocomplete="off">
<option>Москва и Московская область</option>
<option>...</option>
</select>

Лично мне помогло отлично. Если будет что сказать - прошу в комментарии =)

2 коммент.:

Анонимный комментирует...

Firefox 29.0 - сработало. Этого косяка никогда не замечал, а теперь вдруг заметил. FF вообще неудачен немного, чего только стОит его баг/фича с автоматической переадресацией на www , если в .htaccess не прописано явно... Спасибо.

Анонимный комментирует...

Спасибо, помогло! FF версия 32.0.3

Copyright © 2010 WEB IT blog