Форма с вариативным набором полей. Создание универсальных форм на сайте

В форме есть несколько полей, видимость которых зависит от других полей. 

Видимость полей f2,3,4 зависит от поля f1

Для реализации используем подобную разметку формы: 

{form-title}
{colwithlabel-f1}
<div class="f2 hide">{colwithlabel-f2}</div>
<div class="f3 hide">{colwithlabel-f3}</div>
<div class="f4 hide">{colwithlabel-f4}</div>
{form-button}

В CheckField устанавливаем  видимость зависимых элементов: 

CREATE PROCEDURE [dbo].[fm_watch_varyFields_checkItemField]
    @itemID int,	
	@username nvarchar(256),
	@field nvarchar(256),
	@value nvarchar(max)
AS
BEGIN
	if(@field='f1')begin
      if(@value='1') begin 
         select '' Msg, 1 Result, '.f2,.f3' ShowContainer, '.f4' HideContainer
         return      
      end
      if(@value='2') begin 
         select '' Msg, 1 Result, '.f3' ShowContainer, '.f2,.f4' HideContainer
         return      
      end
      if(@value='3') begin 
         select '' Msg, 1 Result, '.f4' ShowContainer, '.f2,.f3' HideContainer
         return      
      end
    end	
	-- SELECT 1
	select '' Msg, 1 Result, '' ShowContainer, '' HideContainer, '' RefreshContainer, 
		'' ReplaceContainer, '' ReplaceContainerHtml 
END

Важный момент. Чтобы при первой загрузке сразу обрабатывался верно CheckField для f1 необходимо в GetItem формы прописать в SELECT 2  'f1' changeTriggerFieldOnLoad

CREATE PROCEDURE [dbo].[fm_watch_varyFields_getItem]
    @itemID int,	
    @username nvarchar(256)
AS
BEGIN
	select 1
    select 'h3' headerTag, 'f1' changeTriggerFieldOnLoad
END

Другие модули

Редактирование одиночных полей формы в личном кабинете

Кнопка очистки формы

Цвет фона формы. Как изменить фон формы на сайте

Сообщение-уведомление на сайте вместо показа формы (NoForm). Отображение сообщения о недоступности формы

Работа с буфером обмена на сайте. Как скопировать текст в буфер обмена

Обновление содержимого страницы сайта (Refresh container). Перезагрузка части страницы

Любой вид формы на сайте - гибкая разметка формы

Выбор адреса и координат с подгрузкой из Google Maps API

Последние обновления

SQL-инструмент для создания личных кабинетов на сайте

Суть подхода и история создания Falcon Space

Платформа Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки

Это быстрое внесение изменений

по ходу эксплуатации программы

Это современный интерфейс

полная адаптация под мобильные устройства