Главная JavaScript

jQuery Form Styler - плагин для стилизации селектов, чекбоксов, радиокнопок, файловых и числовых полей

jQuery Form Styler — плагин для стилизации элементов HTML-форм (input[type=checkbox], input[type=radio], input[type=file], input[type=number], select)

Данный плагин позволяет стилизовать с помощью CSS следующие HTML-элементы: флажок <input type="checkbox">; переключатель <input type="radio">; поле для выбора файла <input type="file">. поле для ввода чисел <input type="number">. раскрывающийся список <select>; Демонстрация работы плагина Живые примеры можно посмотреть на отдельной странице. Стоит заметить, что при ...

Комментарии (2 614)

  1. У меня глюк вылез с определением длины jq-selectbox__select похоже что он её берёт, основываясь на длине исходного селекта? или я чего-то недопонял? Кстати, за плагин спасибо!

  2. На iPad одиночные селекты несколько странно работают:
    1. Кликаем на селект, список раскрывается, весь экран при этом немного затенятся
    2. Кликаем на пункте внутри раскрытого списка — пункт не выбирается, но затенение всего экрана снимается
    3. Кликаем на пункт — и только сейчас он выбирается

  3. Было бы здорово, если бы автор создал опцию плагина не только для текста на кнопке выбора файла, но и для поля, где отображается название файла (.jq-file__name). Чтобы там по умолчанию был бы текст, например: «Нет выбранного файла».

  4. Спасибо за плагин, очень помог.
    Но есть небольшая проблема в Opera:
    при клике по label на checkbox все работает, а когда клик происходит по самому input он вообще никак не реагирует?
    Подскажите в чем может быть проблема?
    Заранее благодарен.

  5. Приветствую,
    вопрос: 2 select, второй изменяется в зависимости от 1го, добавил триггер, все ок. можно выбирать все подгружается — хорошо, но если выбрать строку по умолчанию, для того чтобы второй селект был disable ничего не происходит :(сам второй select получает disable, а вот класс disable не добавляется, в чем может быть проблема?
    надеюсь объяснил :)

  6. есть ли возможность указать parent елемент для селекта, проблема в том что при использевание его в popup окне с высотой проблемы?

  7. Приветствую.
    Вопрос: в ie9 option не соответствует по ширине select (меньше на ширину прокрутки) и если кликнуть по центру select выпадает дефолтные option?
    Подскажите в чем может быть проблема?
    https://www.dropbox.com/sh/mki6wk9mf2k7p9f/2RRjDUgeug
    Заранее благодарен за ответ.

    • в ie9 option не соответствует по ширине select (меньше на ширину прокрутки)

      Что в IE9, что в других браузерах ширина одинаковая.

      если кликнуть по центру select выпадает дефолтные option

      Необходимо указать цветовой фон для .jq-selectbox__select перед указанием градиента, например: background: #FFF;, иначе в IE9 и ниже псевдоселект получается прозрачным, а поскольку прямо под ним спрятан оригинальный селект, вот по нему и происходит клик.

      Кроме того, нужно убрать margin у селекта:

      table.select-birth, .tabPersInfo select, .tabPersInfo input[type="text"] {
      margin: 0 0 0 4px;
      }

      Иначе, если кликнуть в 4 пикселей справа от псевдоселекта, вылазит оригинальный.

      • Спасибо за помощь!
        Все отлично, но в ie9 по-прежнему option не соответствует по ширине select (наблюдается у тех select, где есть прокрутка), в ie8 нормально.
        Какой-то он у меня «загадочный».
        Еще вопрос по скрипту.
        При работе Ваш скрипт генерирует margin-top: 16 и 17px соответственно для оригинальных input radio и флажков.
        Получается они находятся под псевдофлажками и radio c opacity=0, но при клике по ним отрабатывают checked.
        То есть кликнул как на label, как на сам input, как под него сработает checked.
        Если ставишь margin-top: 0, то естественно оригинальные элементы уходят под псевдо и все нормально работает.
        Не очень удобно (или это у меня какой-то глюк)?

        • Все отлично, но в ie9 по-прежнему option не соответствует по ширине select (наблюдается у тех select, где есть прокрутка), в ie8 нормально.

          Вот мой скрин из IE9 — hkar.ru/l4i2

          При работе Ваш скрипт генерирует margin-top: 16 и 17px соответственно для оригинальных input radio и флажков.

          А вот с этим мне придется разобраться. Я сделал эти отступы, т.к. на моей демо-странице они только в этом случае оказываются под псевдоэлементами, а если оставить нулевой отступ, то вылазят вверх. Значит решение не универсальное.

  8. Спасибо за замечательный Form Styler.

    Я обнаружил, что если ставить значения width для селект кнтри HTML по средствам style, тогда jq-selectbox__select-text не правильно устанавливает ширину? Я прав или это недоработка? Как лучше с этим иметь дело, если есть нужна в HTML устанавливать свою ширину для каждого select? Есть возможность добавить поддержку чтения ширины из HTML?

    • Покажите пример. Ширина, которую укажите для select, должна быть такой же и для .jq-selectbox__select.

      • Вот пример на jsFiddle:

        jsfiddle.net/k2Ar4/

        HTML такой же как и у меня. Ваш код немного был изменен, но это не можнт влиять на результат. Я вынужден был измеить название селектора и название функции инит. Обрезается в jsFiddle так же как и у меня. В чем тут проблема?

        • Ширина абсолютно одинаковая, что у оригинального, что у псевдоселекта — hkar.ru/l6zg

          На счет «обрезается» не понял.

          • Посмотрите на поля «Упорядочить», «Отображать» и «По». Все значения обрезаются, хотя ширина селекта на много больше и однозначно вместила бы данные слова. Когда открываешь Firebug, то станоится понятно что selectbox__select-text не правильно определяет ширину и обрезает текст который мог бы вместиться! Если поставить для selectbox__select-text width:160%, то тогда все вмещается, но это не совсем правильно и так же в некоторых ситуациях вызвалоб проблемы!

            Как сделать, чтобы размер поля которое содержит selectbox__select-text ровнялся бы размеру select — selectbox__trigger-arrow.

            Может быть вы это уже сделали? Но дело в том, что мне пришлось уменьшить ширину selectbox__trigger-arrow

  9. Подскажите, как реализовать следующее. Есть чексбоксы, которые отвечают за размер одежды т. е.
    42, 43, 44
    как сделать так чексбокс скрытый, а label работает, т. е. нажали на label вокруг него появился border

  10. Имеется ли функционал сброса выбранного значения мультиселекта при нажатии reset на форме?

  11. Dimox, можно ли как-нибудь отключить стилизацию выпадающего списка в select’ах? Чтобы он стилизовывался стандартными стредствами браузера?

  12. Выложил новую версию — доработаны чекбоксы и радиокнопки.

  13. Здравствуйте.
    Поставил новую версию.
    В Opera версии12.16 при клике по label checkbox пропадает,
    при клике по cледующему label для input radio он срабатывает только при двойном клике?
    www.dropbox.com/sh/mki6wk9mf2k7p9f/2RRjDUgeug
    Подскажите в чем может быть проблема?
    Заранее благодарен.

    • Тут вообще какая-то мистика. Если удалить все три селекта после «Date of Birth», то проблема исчезает. Никакой логики в этом не нахожу.

      И ни в одном другом браузере, кроме как в старой Опере, такой проблемы нет.

  14. Селект очень легко подцепился в drupal 7, но никак не могу понять, можно ли менять дизайн скролла?

    • В моем плагине это не предусмотрено и не будет. Можно попробовать задействовать сторонний плагин, например, jscrollPane. Здесь рассказано, как его прицепить. Только у меня, почему-то, не получилось.

  15. как-то неправильно стали вести себя радио инпуты, они все стают активными, но должна быть только одна активна в группе. У Вас на демо они также себя ведут

  16. Приветствую.
    У меня в форме по клику на «+» увеличивается количество input и select, но проблема в том, что клонированные select неактивные.
    www.dropbox.com/s/ny07i0l003tpr92/Test.zip
    Что нужно, чтобы активировать их?
    Воспользоваться триггером, если да, то как?
    Заранее благодарен за ответ.

  17. День добрый. i.shotnes.com/a/30/zuy5yfbt.u0p_5270dbaee5859.png, если положение экрана не в самом верху, то высота дропбокса определена не правильно и селект обрезается. Как вылечить?

  18. Приветствую.

    При изменении размера окна браузера, триггеры select меняют свое местоположение (для примера Селект, имеющий пункт с длинным текстом).

  19. Вроде написано:

    v1.3.4 (03.03.2013)
    Исправлено: не работало выделение в мультиселекте в Internet Explorer 8-й и ниже версиях.

    Но у меня в IE8 как-то совсем всё плохо. Корректно почти ничего не работает, кроме текстовых полей. На мультиселектах вообще браузер завис. Грусть-печалька.

  20. Добрый день!
    Помогите, пожалуйста!
    У меня следующая проблема
    Есть 2 селекта, использую ваш плагин.
    Выбирая в списке select первого какой-либо элемент, должен выходить в зависимости от выбора определенный перечень элементов на втором селекте, который тоже отображен на странице.
    Без плагина — всё работает
    С плагином — не работает.
    Использую старую версию плагина
    dimox.name/styling-select-boxes-using-jquery-css/

Ваш комментарий