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

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

Видимость полей 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

Насколько полезна эта возможность?

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

Форма генерации счета

Файлы и документы 10.01.2025

Платформа Falcon Space

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

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

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

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

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

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

Сайт использует Cookie. Правила конфиденциальности OK