Jump to content


Photo
- - - - -

Стилизация каскадного селекта


Best Answer Cheren-dow , 18 April 2016 - 23:17

1. Как можно отключить Chosen и подключить  безболезненно jQuery SelectBox?

Боюсь безболезненно не получится сделать замену, во первых рендеринг элемента одинаковый что на фронте так на бекэнде. Поэтому изменения будут везде.

2. Почему всё-таки ID постоянно генерируются новые? Из этого вытекают ещё несколько: 

Дело в том что работа каскадного селекта осуществляется через JS виджет, как правило в JBZoo на любой элемент HTML который может повторятся несколько раз на странице инициализация виджета происходит  по уникальному id.

2а) Как зацепиться за ID селекта, если он всё время обновляется?

За id зацепится  не получиться, используйте класс.

Хочу изменить надпись по умолчанию "- Все -"

Генерация каскадного селекта находится в хелпере JBHtml который расположен по пути:

\media\zoo\applications\jbuniversal\framework\helpers\jbhtml.php

Вам необходим метод selectCascade и строка 

$allText = ' - ' . JText::_('JBZOO_ALL') . ' - ';

[P/S] Chosen так же можно стилизовать для это нужно переопределять или дописывать свои стили.

Go to the full post


  • This topic is locked This topic is locked
4 replies to this topic

#1 zeus07

zeus07
  • JBZoo User (rus)
  • User rate: 6.6
  • posts: 1090
  • topics: 172

Posted 18 April 2016 - 10:50

Здравствуйте!

 

Для стилизации селектов привык использовать небольшой и оооочень удобный плагин jQuery SelectBox. В целом,  для обычных селектов там нет никаких проблем: цепляемся за ID селекта и всё. С каскадным селектом у меня возникла проблема.

 

Заметил интересную вещь, что у каскадного селекта при обновлении страницы изменяются ID каждого поля. Также обнаружил, что к ним подключается скрипт chosen. В связи с этим возникло несколько вопросов:

 

1. Как можно отключить Chosen и подключить  безболезненно jQuery SelectBox?

2. Почему всё-таки ID постоянно генерируются новые? Из этого вытекают ещё несколько: 

  2а) Как зацепиться за ID селекта, если он всё время обновляется?

  2б) Хочу изменить надпись по умолчанию "- Все -" и для каждого поля должна быть своя надпись, и в этомслучае мне также нужно зацепиться за ID селекта...

 

Подскажите пожалуйста по этим вопросам.


  • 0

#2 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 18 April 2016 - 23:17   Best Answer

1. Как можно отключить Chosen и подключить  безболезненно jQuery SelectBox?

Боюсь безболезненно не получится сделать замену, во первых рендеринг элемента одинаковый что на фронте так на бекэнде. Поэтому изменения будут везде.

2. Почему всё-таки ID постоянно генерируются новые? Из этого вытекают ещё несколько: 

Дело в том что работа каскадного селекта осуществляется через JS виджет, как правило в JBZoo на любой элемент HTML который может повторятся несколько раз на странице инициализация виджета происходит  по уникальному id.

2а) Как зацепиться за ID селекта, если он всё время обновляется?

За id зацепится  не получиться, используйте класс.

Хочу изменить надпись по умолчанию "- Все -"

Генерация каскадного селекта находится в хелпере JBHtml который расположен по пути:

\media\zoo\applications\jbuniversal\framework\helpers\jbhtml.php

Вам необходим метод selectCascade и строка 

$allText = ' - ' . JText::_('JBZOO_ALL') . ' - ';

[P/S] Chosen так же можно стилизовать для это нужно переопределять или дописывать свои стили.


  • 0
Изображение
 

#3 zeus07

zeus07
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 6.6
  • posts: 1090
  • topics: 172

Posted 19 April 2016 - 10:13

Спасибо за ответ. Наверное всё-таки придётся стилизовать сам Chosen. 

 

Вопрос по изменению надписи "- Все -". Так как у каскадного селекта 3 уровня, мне необходимо для каждого уровня прописать вместо этого слова своё. А здесь как я понимаю без ID вообще никуда.

 

Можно это как-то реализовать? На сайте через каскадный селект идёт подбор школ. Выбираем язык, страну и город. И вот хотелось бы сделать чтобы там были именно эти слова.


  • 0

#4 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 19 April 2016 - 22:44

zeus07, реализация каскадного селекта полностью положена на плечи JS. Проблосить в JS  для разного уровня заголовки не получится. Для этого нужно изменять как jbhtmlHelper а так же сам JS виджет - все это не одна строка кода. К тому же могут всплыть подводные камни.


  • 0
Изображение
 

#5 zeus07

zeus07
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 6.6
  • posts: 1090
  • topics: 172

Posted 20 April 2016 - 17:46

Понял, спасибо.


  • 1




Click to return to top of page in style!