Была тут задача сделать веб-форму. У веб-формы был вопрос "отрасль", ответы которого представляли собой выпадающий список (dropdown). Как всем известно, в расширенном режиме редактирования веб-форм, мы можем дописать свои параметры для вариантов ответа.
И мне понадобилось добавить для вариантов ответа атрибут id. Заполнив поле "параметры" я полез в публичку в надежде увидеть примерно следующее.
Однако - хрен! Кроме атрибута SELECTED к тегу option добавить ничего невозможно, что подтвердил анализ исходников.
Цитата из обращения:
В итоге выпадающий список, который формируется в публике не содержит добавленных параметров. Т.е. теги option содержат только атрибут value. Единственный параметр, который может быть добавлен - это "selected".
Я посмотрел исходники и судя по всему проблема вот в методе GetDropDownField, который вызывает SelectBoxFromArray. А второй параметр SelectBoxFromArray вообще обрабатывается только по ключам reference и reference_id. Параметр "selected" добавляется только потому, что компонент веб-форм передает его третьим параметром в метод как текущее выбранное значение списка.
Как и положено, сначала меня попросили обновится, но версия у меня последняя - 8.5.2.
Из остальных ответов в обращении я узнал пару "интересных" вещей:
1) Если заполнить параметры для первого варианта ответа, то параметры добавятся для тега select, вместо первого option и это считается нормальной работой продукта.
2) Тег option не может иметь атриббуты кроме value, selected, disabled. Подтверждается ссылкой на htmlbook.ru!!! (option вполне может иметь и id и class - читаем http://www.w3.org/TR/html401/interact...ef-OPTION)
На мой последний вопрос
Почему атрибут SELECTED будет оторажаться в публичке, если я его укажу в параметрах, а любой другой не будет? Это сделано потому что вы считаете другие атрибуты невалидными? Ответьте конкретно на этот вопрос пожалуйста.
мне предложили посмотреть описание функции "SelectBoxFromArray"
Т.е. я это прочитал так:
"Почему у нас сделано херово вы можете узнать посмотрев вот сюда!"
Зачем селектам айди, не особо понятно, всё можно через value передать
Мне нужно не селектам, а option. Допустим хочу для option класс добавить, чтобы через css выделять его как-то. Понятно, что можно сделать свой шаблон и.т.п, но я тут вижу конкретный баг или недоработку - ввожу параметры, а они не отображаются. Я потратил час чтобы понять, почему эта хрень не работает.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».