jQuery Form Styler - плагин для стилизации селектов, чекбоксов, радиокнопок, файловых и числовых полей
![jQuery Form Styler — плагин для стилизации элементов HTML-форм (input[type=checkbox], input[type=radio], input[type=file], input[type=number], select)](https://dimox.name/wp-content/themes/dimox.name/cache/d0/6a66efe39766dd0_150x100.png)
Данный плагин позволяет стилизовать с помощью CSS следующие HTML-элементы: флажок <input type="checkbox">; переключатель <input type="radio">; поле для выбора файла <input type="file">. поле для ввода чисел <input type="number">. раскрывающийся список <select>; Демонстрация работы плагина Живые примеры можно посмотреть на отдельной странице. Стоит заметить, что при ...
Комментарии (2 614)
В общем да, правильней будет сказать, открывается список, но не выбирается нужный пункт.
Не силен в javascript… Подождем создателя плагина, он вообще, то оперативно реагирует, вчера видимо просто пропустил Ваш вопрос. А по вашим записям правильней все же наверное сказать открывается список, нужный пункт выбирается просто во второй и последующие разы не происходит никаких событий. Грубо говоря обработчик почему-то не реагирует на событие выбора option у селекта.
А селект и не будет реагировать повторно, потому что значение было уже выбрано, тут ситуцию нужно пересмотреть просто, что конкретно вы хотите сделать. Например: Если Вам нужно выбирать не сколько значений и держать эти значения в другом месте, то Вам просто нужно при каждом выборе какого-либо значения сбрасывать селект.
Как это реализовать, подскажите?
Вот пример.
Спасибо!
Имею схожую проблему, как у Игоря, объясняю: Мои селекты изначально скрыты, при нажатии на кнопку «Добавить», они показываются поочередно (посредством иного скрипта), выбор из селекта работает чудесно, но если снова скрыть селект и опять его показать («Добавить»), мой селектр становится неактивным. То, что дело в вашем скрипте, убедился с помощью его отключения. Заранее благодарю за ответ!
Непонятно, что значит «становится неактивным».
При нажатии на выпадающий список, список не выпадает :)
Покажите живой пример.
Вот jsfiddle.net/6x3nhm2b/
Решено удалением
. Все же дело было не в вашем плагине! Спасибо за хорошую работу :)
Василий, на будущее, не нужно input_wrap.html (input_wrap.html ()); вместо этого используйте
а при добавлении делайте инициализацию плагина $('p.hide select').styler (); тут уж на свой вкус, для всех применять или только для какого-то отдельного случая
Не знаю, как это исправить.
Приветствую!
У меня список уходит за границу элемента, как исправить эту проблему?
http://dl91.internetrange.com/signup.png
Скрин ни о чем не говорит, покажите живой пример.
http://dl91.internetrange.com/test.php
Это потому, что селект находится в блоке с overflow: hidden.
Ясно, пришлось ограничить по высоте. Может посоветуете что-нибудь?
Логично же, что я скажу убрать overflow: hidden. Верстать можно и без него.
При обновлении страницы, данные, что были выбраны в прошлый раз — остаются. Как этого можно избежать?
Я с подобным сталкивался только в Firefox. Ctrl + F5 помогает.
Здравствуйте. Столкнулся с проблемой. Есть сайт в фильтром товаров. Чеки и радио стилизованы Вашим скриптом.
Отказывается работать функционал обновления состояния input. В двух словах. Я выбираю стоимость товара 1500. Ниже расположены чеки с цветом. Должны остаться только те, которые есть у товаров со стоимостью 1500. Остальным добавляется disabled.
Ваш скрипт подключен:
Так как идет обновление состояния input, в скрипте фильтра добавлено:
Также пример с кодом:
Кусок идиота. Простите что дернул, пожалуйста. Ну конечно же:
Еще раз извиняюсь.
Ан нет, ошибся. Не отрабатывает.
Извините, а можно по конкретней описать задачу в личке, я Вам помогу сделать, потому что я уже делал подобное с этим плагином, все отлично работает)
Именно так и делается. Если не срабатывает, значит что-то неправильно в вашем скрипте.
Есть проблемка с чекбоксом если он внутри тега label.
Если в лейбле разместить ссылку то перейти по ней нельзя.
Решил проблему модификаций кода плагина:
Внезапно возникла необходимость в помощи :)
Юзаю ваш стайлер, и надо было еще прикрутить зависимые списки. попробовал этот вариант.
Блин, работает либо один, либо другой. Оба не хотят.
Пробовал всяко, вот так
styler работает вообще интересно :)
Дим, помогите совместить эти две не совместимые вещи, или может у вас есть на примете вариант с зависимыми списками работающий с вашим стайлером.
Вам сюда.
премного вам благодарен.
А можно стилизовать полосу прокрутки в выпадающем списке?
Если только сторонним плагином.
И как именно? Хорошо если был бы пример для данного плагина.
Я пробовал вот так, но у меня не получилось.
Аналогично пробывал, не помогло
Можно, подключаем jscrollpane при инициазации плагина:
извините за code style, стилезуйте на свой вкус.
В стилизованном select`e на скрытой форме не выпадает список, все стили стандартные
Доброго времени суток!
Подскажите пожалуйста как выбирать\отменять все чекбоксы в блоке?
как пример — есть три блока:
Буду очень благодарен за помощь!
Вот пример.
Большое Вам спасибо!
Но я так и не понял как сделать чтобы выбиралось не по всей странице, а только у нужном блоке :(
Пример с вашим кодом.
Вы просто БОГ!
Огромное Спасибо :)
Здравствуйте,
-при клике на стилизованный checkbox, в созданный div, к классу jq-checkbox добавляется\убирается checked, но в сам input, checked не добавляется\убирается.
то, что получается сейчас:
то, что необходимо:
подскажите пожалуйста как решить проблему?
Зачем вам это?
извиняюсь за беспокойство, думал что в пост не отправляет инфу из-за отсутствия «чекед», но как оказалось в другом.
Подскажите, можно ли сделать так, что бы при нажатии на select сразу можно было писать (что бы не нужно было ставить курсор в строку поиска)?
После клика на селект нажмите Tab, и можно писать.
Ранее фокус в поле ставился автоматически при открытии, но я убрал эту возможность, т.к. нельзя было переключаться табом между селектами.
А можна как-то вручную задать? А то уже привык…
Нужно заменить строку:
на:
Спасибо, то что надо
Здравствуйте!
Решил использовать скрипт на сайте.
Использую select и checkbox.
Визуально все работает.
Но при отправке формы не приходят данные из выбранного селекта. Получается что в option не присваивается атрибут selected.
Подскажите что можно сделать чтобы выбранное значение селекта передавалось?
Видимо, у вас где-то ошибка в обработке данных формы. Все должно работать.
Хотелось бы какой-нибудь селектор, который бы не применял плагин для определенных элементов формы.Т. е. по умолчанию на весь сайт плагин работает. Но есть отдельные элементы, где это не нужно.
Это и сейчас можно сделать, указав тегу какой-нибудь класс и прицепив styler () на это класс.
Либо еще вариант:
И указать класс default селекту, который не нужно стилизовать.
Здравствуйте, не так давно стал пользоваться вашим плагином, все замечательно, кроме одного момента. Суть такая, при стилизации select, если он находится в блоке у которого присутствует overflow: hidden; скрывается раскрывающийся список, но если select не стилизовать отображается все нормально.
код следующий:
overflow: hidden убрать не представляется возможным
какое может быть решение этой проблемы?
Решения для такой ситуации нет. Вариантов только два:
— не использовать плагин;
— не использовать overflow: hidden.
Решение есть. Для «form ul li» overflow убрать и добавить следующий код:
Спасибо огромное!!!
Дружище, за плагин спасибо, просьба сделать некоторые правки.т. е. получение ajax-данных, загрузка в массив, загрузка в нестилизованный выпадающий список — мгновенно, с стилизацией — браузер встает колом, анимация загрузки останавливается на время обработки. trigger ('refresh'). И если liClass='', не надо в li прописывать class='', вроде мелочь, но на больших объемах очень сильно чувствуется. Еще раз спасибо за плагин!
В выпадающих списках не добавляй «display: block; white-space: nowrap;» для каждого li, оно не существенно на небольших списках, на на списке 4000 записей тормоза появляются нереальные. Можешь не спрашивать зачем нам 4k записей, заказчик упёрся рогом, что все опции должны быть в одном выпадающем списке, ну такого его желание. Не суть. Я тебе могу сказать, затык происходит в браузере в момент. trigger ('refresh'),
Эти свойства добавлены не просто так. Я не могу их убрать. Попробуй альтернативный плагин, может он не будет тормозить.
Вы можете эти свойства переопределить! important'ом, ну, а так вы сами можете подправить код, как он Вам нужен, не так ли?
Вот именно, так почему бы не вынести эти свойства сразу в css-файл, зачем это пихать в html? А вас Фарит что-то не устраивает или вы сторонник говнокода?
Возникла небольшая проблема с плагином.
Нужно сделать связанные списки (страны, города), при замене всех option у select’a перезапускаю плагин с помощью trigger ('refresh'), и там где много option’ov (около тысячи) браузер начинает жутко тормозить, а firefox и вовсе вылетает, конечно тысяча option’ov это много, но все-таки.
К сожалению, я не умею оптимизировать подобную нагрузку.
Друг я выше отписался об аналогичной проблеме, я ее решил, скинь свою почту, могу помочь.
В js не силен. не понял принцип написания триггера refresh при динамическом обновлении контента.
По сути: на странице есть один селект, при выборе элемента из списка которого, ajax’ом подгружается второй селект. как сделать чтоб стайлер его тоже подхватывал?
Если селекта не было на странице, то нужно запускать. styler (), если же он был, но в нем что-то менялось, тогда нужно запускать. trigger ('refresh').
как запускать то?))
ну не курю я JS
сделал:
не работает
видимо не в том месте прописал.
хорошо, дополню свой вопрос «Как запусть то?» вопросом «и где?»))
Ну это уже слишком)) Для начало посмотрите как производится работа с jQuery функциями, что такое trigger. Вам нужно:
Что-то примерно вот так должно у Вас выглядеть))
Простите, но с налету разобраться во всех этих нагромождениях разносортных скобок и знаков $, банально не хватает времени ((
Всем спасибо за терпение! разобрался))
теперь еще вопрос: стайлер принимает простые инпуты?
нет, потому что простые input’ы могут быть и без js стилизованы
Здравствуйте. Заметил, что в ие9 под вин7 селект без заданной ширины «глючит и колбасит» :) даже на вашей странице с примерами: видеозапись
Я в курсе, но не знаю, как это исправить.
Досадно. Очень понравился ваш плагин…
А если вот такой вариант не подходит?
Строка 411. Просто в ie9 ширина задается сразу размеру ширины страницы и поэтому начинается баг.
Да, это то, что нужно. Благодарю за помощь! Добавлю в следующей версии.
А может еще какие недостатки есть? я гляну как будет минутка)
Я пока проблем не обнаружил.
Посмотрите, пожалуйста, вот такое решение для события изменения на клавиатуре, поддержка Mac OS. Строка 658. Рефакторинг приветствуется)
Спасибо, в свободное время посмотрю.
Протестировал. Проблему решает, но выявил недостаток — в селекте с optgroup невозможно переключить пункты с клавиатуры.
Хм… я понял, еще одну проверочку нужно воткнуть))
Извините, а можете из прошлого кода взять и изменить функции на
и вызов этой функции на
, чтобы не плодить один и тот же код, протестируйте. Спасибо)
только перед index’ом поставьте var =)
Выложил новую версию — 1.6.1.