- Исправлено: нативный селект выходил вправо за область псевдоселекта, из-за чего пространство справа от псевдоселекта становилось кликабельным.
- Изменено: в отмеченном чекбоксе теперь галочка вместо квадрата.
- Исправлено: неверный путь в параметре
mainфайла package.json. - Исправлено: для
<input type="number">не срабатывало событиеinputпри нажатии на переключатели.
- Добавлено: вызов события
clickдля<input type="checkbox">и<input type="radio">(#130). - Изменено: все обязательные стили вынесены из скрипта в отдельный файл - jquery.formstyler.css, а оформление - в jquery.formstyler.theme.css.
- Изменено: удалена опция
singleSelectzIndex(z-indexдля селекта теперь задается через css-файл). - Изменено: нативная прокрутка списка пунктов селекта (#127).
- Исправлено: при динамическом изменении
<input type="file">у псевдоэлемента сбрасывалось значение при том, что оно сохранялось у оригинального элемента.
- Исправлено: при отключенном умном позиционировании в селекте (
selectSmartPositioning = '-1') не работала опцияselectVisibleOptions. - Исправлено: высота выпадающего списка селекта считалась неверно, когда был задан
selectPlaceholder, включена опцияselectVisibleOptionsи не указанmin-heightдля.jq-selectbox li. - Исправлено: (#122).
- Добавлено: поддержка мультиязычности.
- Добавлено: (#108).
- Изменено: в bower.json имя
jquery-form-stylerнаjquery.form-styler. - Исправлено: при использовании jQuery 3+ выпадающий список селекта раскрывался только вверх.
- Исправлено: в package.json была неправильно заполнена секция "main".
- Добавлено: поддержка дробных чисел в
<input type="number">. - Добавлено: поддержка передаваемых атрибутов в
<input type="number">. - Изменено: рефакторинг кода передаваемых атрибутов от оригинальных элементов.
- Изменено: группы радиокнопок (с одинаковым атрибутом
name) теперь работают и вне тега<form>. В связи с этим удалена опцияwrapper. - Изменено: подкорректированы стили для
<input type="file">, чтобы в браузерах на движке Blinkcursor: pointerсрабатывал по всему полю. - Исправлено: улучшен расчет высоты выпадающего списка в селекте, он мог выходить за пределы экрана (#93).
- Исправлено: улучшена скорость подсчета ширины селекта на больших списках (#95).
- Исправлено: плейсхолдер в селекте теперь отображается только в случае, если по умолчанию выбран первый пункт с отсутствующим текстом.
- Добавлено: поддержка события
changeдля тега<input type="number">. - Исправлено: выпадающий список селекта не раскрывался вверх в тех случаях, когда должен был.
- Добавлено: новая опция
fileNumberдля текста "Выбрано файлов: N". - Изменено: при выборе файлов в файловом поле с множественным выбором теперь вместо перечисления списка файлов отображается текст "Выбрано файлов: N".
- Исправлено: #82.
- Добавлено: поддержка стилизации тега
<input type="number">.
- Исправлено: ошибка в колбеке
onFormStyledв случае отсутствия элементов для стилизации. - Исправлено: не передавались атрибуты
idиtitleиз тега<option>.
- Добавлено: настройки плагина теперь можно извлечь из любого стилизованного элемента.
- Добавлено: метод
destroyдля отвязки плагина от элемента. - Изменено: рефакторинг способа инициализации плагина.
- Исправлено: устранена утечка памяти, связанная с
$(document).click()(#54). - Исправлено: текст длинного пункта выходил за пределы селекта с заданной шириной.
- Исправлено: неправильная ширина селекта, когда первый пункт длиннее остальных (ширина селекта менялась при выборе пунктов).
- Исправлено: в тегах
<option>, находящихся внутри<optgroup>, не передавались data-атрибуты. - Исправлено: #70.
- Исправлено: #72.
- Исправлено: если кликнуть на селект, у которого есть плейсхолдер, и нажать на любую клавишу на клавиатуре, то текст плейсхолдера пропадал.
- Исправлено: ошибки прокрутки в выпадающем списке селекта, когда у него есть плейсхолдер.
- Исправлено: проверка на iOS и Android срабатывала и на Windows-смартфонах.
- Изменено: если выпадающий список селекта выходит за правый край окна браузера, то позиционирование меняется с левого на правое.
- Добавлено: поддержка AMD и CommonJS.
- Исправлено: если в теге
<label>, который обрамляет<input type="checkbox">или<input type="radio">, находилась ссылка, то по ней нельзя было перейти. - Исправлено: в IE9, если у псевдоселекта не была задана ширина, то она "скакала" при наведении.
- Исправлено: если плейсхолдер селекта был длиннее, чем
<option>, то он обрезался. - Исправлено: в псевдоселектах к тегам
<li>теперь не добавляется атрибутclass, если он пустой. - Изменено: CSS-свойства, прописанные в плагине тегам
<li>в псевдоселектах, перенесены в CSS-файл.
- Добавлено: возможность указать опции плагина конкретным тегам через data-атрибуты.
- Добавлены новые классы: при открытии выпадающего селекта вверх (
.dropup) и вниз (.dropdown). - Исправлено: не всегда корректно рассчитывалась ширина стилизованного селекта.
- Исправлено: не передавались data-атрибуты от оригинальных элементов.
- Добавлено: выпадающий список селекта теперь можно открывать/закрывать пробелом.
- Изменено: отключена стилизация мультиселекта в Android (в стилизованном селекте нет возможности выбрать несколько пунктов) и iOS (в стилизованном селекте неправильно отображаются выбранные пункты).
- Добавлено: поддержка замещающего текста для селекта (placeholder), который может быть задан через опцию
selectPlaceholderили атрибутdata-placeholder, и класс.placeholderдля его оформления. - Добавлено: защита от XSS в селекте. В предыдущих версиях плагина, если в опцию вставить
<script>в виде escape-последовательности, то он исполнялся при выборе этой опции. - Изменено: поиск в селекте теперь по умолчанию выключен.
- Изменено поведение опции
selectSmartPositioning, теперь она может иметь 3 значения (подробнее - в описаниях опций плагина). - Исправлено: в Internet Explorer не добавлялся класс
.openedдля открытого селекта. - Исправлено: в Internet Explorer не всегда срабатывал колбек
onSelectOpened.
- Исправлено: не всегда срабатывал
.change()для мультиселектов. - Исправлено: некорректно работал колбек
onSelectClosed.
- Исправлено: в одиночном селекте при переключении на пункт с таким же названием, как у выбранного, не срабатывало событие
change. - Исправлено: при клике на пункт мультиселекта удалялся класс
.focused. - Изменено: при клике на пункт одиночного селекта последнему теперь возвращается фокус (поведение стандартного селекта).
- Изменено: при открытии селекта поисковое поле теперь не получает фокус, чтобы можно было переключать пункты с клавиатуры.
- Исправлено: при переключении раскрытого селекта с клавиатуры, если присутствовал вертикальный скроллинг, текущий пункт уходил за пределы видимости.
- Исправлено: не работал
.on('change' ...)для селектов.
- Исправлено: после предыдущего обновления некорректно работал
.trigger('refresh'). - Код плагина приведен в порядок в соответствии с рекомендациями jshint.
- Исправлено: если у файлового поля есть атрибут
multiple, то при выборе нескольких файлов отображалось название только одного из них. - Исправлено: устранена утечка памяти при запуске
.trigger('refresh'). - Исправлено: #44.
- Исправлено: при динамическом добавлении пунктов в селект переставал открываться выпадающий список в Internet Explorer.
- Добавлено: стили для кнопок с классом
.styler, имеющих атрибутdisabled.
- Добавлено: к файловому полю теперь добавляется класс
.changed, когда файл выбран. - Исправлено: не всегда корректно добавлялся класс
.focused, когда селект получал фокус. - Исправлено: при фокусе на селекте нажатие клавиш Space и Enter открывало нативный список селекта.
- Исправлено: в iOS не добавлялся класс
.changedпри изменении селекта. - Исправлено: #38.
- Добавлены колбеки, срабатываемые при открытии селекта (
onSelectOpened), при закрытии селекта (onSelectClosed) и после выполнения плагина (onFormStyled). - Заменены все
bindиunbindнаonиoff. - Убрано переключение чекбокса по нажатию Enter.
- Исправлено: #35.
- Исправлено: #33.
- Исправлено: не всегда правильно формировалась ширина псевдоселекта.
- Изменено: снова переработан способ формирования ширины псевдоселекта. Решил отказаться от возможности задания ширины оригинальному элементу, т.к это только сильно все усложняло. Теперь задать ширину можно только через селекторы
.jq-selectboxи.jq-select-multipleдля одиночного и мультиселекта соответственно. - Исправлено: если при повторном выборе файла сделать отмену, то плейсхолдер не возвращался.
- Добавлено: на iOS при прокрутке мультиселекта теперь отображается вертикальный скроллинг.
- Добавлено: опция
wrapperна случай, если стилизуемые элементы находятся вне тегаform. - Изменено: доработана функция
preventScrolling()(#25). - Исправлено: если параметр
selectVisibleOptionsбыл больше нуля, то при каждом последующем клике на селект высота выпадающего списка уменьшалась в 2 раза.
- Добавлено: поиск в одиночном селекте и соответствующие опции (
selectSearch,selectSearchLimit,selectSearchNotFound,selectSearchPlaceholder). - Исправлено: в Mac OS X нельзя было выбрать несколько значений в мультиселекте (по аналогии с зажатым Ctrl на Windows).
- Изменено: полностью переработана система умного позиционирования для выпадающего списка селекта.
- Изменено: опция
browseTextпереименована вfileBrowse.
- Добавлена поддержка динамического добавления/изменения атрибутов
class,id,data-*,title.
- Добавлена поддержка сброса формы при нажатии на
<input type="reset">.
- Решена проблема с селектом в iOS.
- Добавлено: свойства
margin: 0иpadding: 0к оригинальным полям. - Исправлено: проблема с шириной селекта при изменении размера окна браузера.
- Исправлено: доработан способ скрытия чекбоксов и радиокнопок, чтобы они не переключались при клике на область рядом с псевдоэлементами.
- Добавлено: плейсхолдер для поля выбора файла (новая опция -
filePlaceholder). - Изменены стили для поля выбора файла.
- Изменен способ скрытия оригинальных элементов, благодаря чему теперь поддерживается HTML5-валидации.
- Исправлено: ширина селекта, указанная в процентах, теперь меняется, как положено, при изменении ширины его родительского контейнера.
- Добавлено: поддержка
data-*атрибутов для тегаoption. - Изменено: ширину для мультиселекта теперь можно задавать тегу
<select>. - Исправлено: ширина для селекта, указанная в процентах, работала неправильно.
- Исправлено: при использовании jQuery версий 1.7-1.8.3 после выбора пункта селекта у родительского контейнера удалялись все классы.
- Исправлена некорректная работа первых двух изменений предыдущей версии плагина в случае, когда для тега
optionдобавлялся атрибутselected.
- Добавлено: в одиночном селекте при выборе пункта, отличного от значения по умолчанию, добавляется класс
.changed, указывающий, что селект изменен (смотрите примеры). - Добавлено: если у
optionуказан какой-либо класс, то при выборе соответствующего пункта этот класс добавляется к родительскому тегу псевдоселекта (смотрите примеры). - Изменено: все теги
spanзаменены наdiv; ранее это было необходимо для поддержки IE7, в котором свойствоdisplay: inline-blockбез хаков работает только для строчных элементов. - Изменено: полностью изменена методика задания ширины одиночного превдоселекта, теперь ширину можно задавать стандартным способом (т.е. тегу
<select>), как если бы плагин был отключен. - Исправлено: класс
.openedне всегда удалялся, когда это было нужно.
- Добавлено: в псевдоэлементы передается атрибут
title, указанный у оригинальных элементов. - Незначительные изменения в файле стилей.
- Исправлено: при открытии селекта другие не закрывались.
- Изменено: удалено свойство
float: leftу тегаdiv.jq-selectbox__selectза ненадобностью. - Изменено: класс
.jq-selectbox__textпереименован в.jq-selectbox__select-text.
- Исправлено: ошибка "Maximum recursion depth exceeded" при клике на неактивный чекбокс или радиокнопку.
- Исправлено: баг, связанный c ускорением прокрутки длинного выпадающего списка в селекте после неоднократно раскрытия/скрытия выпадающего списка.
- Изменено: названия некоторых классов заменены на более уникальные.
- Исправлено: не работало выделение в мультиселекте в Internet Explorer 8-й и ниже версиях.
- Добавлена опция, позволяющая отключать умное позиционирование для выпадающего списка селекта (чтобы он раскрывался всегда вниз).
- Изменен способ скрытия оригинальной радиокнопки (ранее при отсутствии фона у родителя ее было видно).
- Исправлено: в некоторых случаях с псевдо-радиокнопки не снималось отмеченное состояние.
- Добавлено: переключение селекта с клавиатуры.
- Добавлено: прокрутка до 1-го выбранного пункта в мультиселекте.
- Добавлено: в псевдоэлементы теперь передаются все
data-*атрибуты, указанные у оригинальных элементов. - Исправлено: если в одиночном селекте нет пунктов с атрибутом
selected, то к первому<li>не добавлялся класс.selected. - Изменено: к атрибуту
id, передаваемому от стилизуемого элемента, теперь добавляется суффикс (можно указать свой через опцию). - Изменено: уменьшен z-index по умолчанию для одиночного селекта.
- Внесены изменения, необходимые для корректной работы плагина с jQuery 1.9.
- Исправлена ошибка, связанная с неправильной работой динамического изменения селектов.
- Реализована поддержка тега
<optgroup>в селекте.
- Изменен способ эмуляции
<input type="file">, что позволило избавиться от двух далее описанных багов в Firefox и IE. - Изменены названия CSS-классов у псевдоэлементов на более уникальные (соответственно, файл jquery.formstyler.css изменен).
- Изменено: опция
zIndexпереименована вsingleSelectzIndex. - Исправлено: в браузере Firefox обрабатывался клик по
<input type="file">в состоянииdisabled. - Исправлено: в браузере Internet Explorer динамически измененный
<input type="file">не передавал файл на сервер. - Исправлено: у простого селекта теперь убирается фокус при переключении Tab'ом на другой элемент формы.
- Добавлено: поддержка фокуса для
<input type="file">при нажатии на Tab. - Добавлено: к родительскому тегу простого селекта добавляется класс
.openedпри раскрытии выпадающего списка. - Добавлено: CSS-классы, указанные для
<option>передаются тегу<li>в псевдоселекте. - Добавлено: новая опция
selectVisibleOptionsдля селекта (см. описание выше в статье).
- Исправлен баг в Firefox: если у первого пункта селекта стоял атрибут
selected, то при выборе любого другого пункта передавалось значение первого.
- Псевдоэлементам теперь передаются те же идентификаторы и классы, которые указаны для стилизуемых элементов форм.
- При прокрутке списка одиночного селекта страница теперь не прокручивается (ранее это работало только для мультиселекта).
- При открытии селекта с длинным списком теперь сразу виден выбранный пункт (ранее его могло быть не видно, и приходилось прокручивать список, чтобы его найти).
- Добавлена поддержка атрибута
multipleдля тега<select>. - Добавлена поддержка атрибута
disabledдля тега<input type="file">.
- Решена возникающая в ряде случаев проблема с селектом в браузере Firefox при использовании атрибута
selected.
- Плагин теперь реагирует на применение метода
changeу тега<input type="radio">. - Добавлена опция
zIndex.
- Добавлена поддержка атрибута
disabledдля тега<select>.
- Первая версия плагина.