HTML_QuickForm и динамическая форма

hayk

Новичок
HTML_QuickForm и динамическая форма

Возможно при использовании HTML_QuickForm скрывать/показывать элементы Формы?
Например. Имеется два элемента радио, при выборе первого должны отображаться два чекбокса, при выборе второго, два чекбокса скрываются, а показывается один инпут.
Такое возможно?
 

magic

lancer
Посмотри, как HTML_QuickForm_advmultiselect сделан и измени под свои нужды.
 

hayk

Новичок
Т.е. мне надо написать свой элемент?

Как я пробовал делать.
На событие onClick я повесил ф-цию обработчик. Но если сами элементы я могу скрывать или показывать (т.к. знаю имена и айди элементов), то лейблы к ним - нет.

Писать свой элемент - это слишком накладно.
 

magic

lancer
Не обязательно писать свой элемент.

Создай два слоя. В одном слое - два чекбокса, а в другом - инпут. Один из слоев будет невидимым. Включай их попеременно, в зависимости от того, какой из radio элементов выбран.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: hayk
Как я пробовал делать.
На событие onClick я повесил ф-цию обработчик. Но если сами элементы я могу скрывать или показывать (т.к. знаю имена и айди элементов), то лейблы к ним - нет.
Тебе надо скрывать не "элементы" и "лейблы", а контейнеры, в к-рые они вложены, т.е. <tr> или там <div>.
Грубо говоря, ищешь нужный контейнер, в который вложен элемент, имеющий известное имя или id. А потом играешься с его свойством .style.display

Обрати внимание, что форма перегружается.
 

.des.

Поставил пиво кому надо ;-)
Автор оригинала: Sad Spirit
Обрати внимание, что форма перегружается.
Я заметил.
Только надо иметь ввиду, что простое скрытие контейнеров не всегда подходит, так как на скрытые элементы могут быть повешены правила, и форма просто не пройдет проверку.

Хотя... кому это я рассказываю? :D
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: .des.
Я заметил.
Только надо иметь ввиду, что простое скрытие контейнеров не всегда подходит, так как на скрытые элементы могут быть повешены правила, и форма просто не пройдет проверку.
Ага, поэтому я сейчас сижу чешу репу, как наиболее аккуратно сделать в новой версии QuickForm возможность задавать "цепочки" правил, типа "если чекбокс выбран, то поле для ввода становится обязательным".
 

hayk

Новичок
Автор оригинала: Sad Spirit
Тебе надо скрывать не "элементы" и "лейблы", а контейнеры, в к-рые они вложены, т.е. <tr> или там <div>.
Грубо говоря, ищешь нужный контейнер, в который вложен элемент, имеющий известное имя или id. А потом играешься с его свойством .style.display
Я тоже пришел к такому же выводу, пока задание не изменилось :)
Теперь имеется две группы радио, в зависимости от того какой элемент выбран в первой группе, во второй доступным должны быть те или иные элементы. Из двух вариантов - скрывать (1) или дизейблить (2) элементы я выбрал второй. По-моему это проще.
 
Сверху