Триггеры и условные поля (Triggers & Conditional States)

Авторы/перевод. материала
  • SEBLOD Sebastien Heraud
  • Жулин Илья aka ComeOn
Источники материала
Conditional States (условные состояния) - это дополнительные настройки полей Seblod, позволяющие в зависимости от текущего состояния и выбранного (введенного) значения в одном поле, менять состояние другого поля или группы полей. Позволяют оптимизировать формы, улучшают их внешний вид. При помощи условных состояний полей можно создавать сложные по своей структуре формы ввода данных.

Как это работает?


Представте себе форму анкеты, в которой вы хотите отобразить вопрос Б, только, если пользватель ответил "нет" на вопрос А. Если сделать таким образом, ваша анкета может стать более интерактивной, реагируя так или иначе на ответы пользователей.
Это и есть пример использования триггеров и условных состояний для полей в SEBLOD 2.x. Такая функция очень часто вотребована при создании форм.
На самом деле, требования часто гораздо обширнее - начиная от отключения поля, когда пользователь выбирает определенное значение в специальном поле, отображения поля красным цветом, когда значение в поле FIeld1= value y и Field2 = value x и заканчивая отображением поля, когда пользователь вводит текст и многим другим.

Введение

Для решения данного вопроса, SEBLOD ввел Условные поля(поля с условиями) с Состояниями и Триггерами.

Поле с условием объединяет, как минимум, одно состояние и один триггер. Поле изменяет свое состояние, когда условие триггера истинно. Состояния и триггеры доступны в интерфейсе разделов Forms & Content Types и List $ Search Types на шаге 5 настройки полей:

 

Conditional fields Overview

При нажатии Add или Edit появится следующее окно:

Conditional fields Add/Edit

States (Состояния)

В поле States выбирается состояние, в которое должно прийти поле, если срабатывает триггер (выполняется условие).

  1. "is Visible"("Видимое") и "is Hidden" ("Скрыто") - используется, чтобы скрыть или показать поле в случае сработки триггера.
    Если выбраны эти состояния, то есть воможность указать эффект с которым изменяется состояние. Для этого введите в текстовое поле, рядом с выпадающим списком (без кавычек):
    - "fade"
    - "slide"
    - или оставте поле пустым
  2. "is Filled" или "is Empty" - используются, чтобы заполнить или очистить поле в случае сработки триггера. Если выбрано состояние "is Filled", то можно вписать текст, которым надо заполнить поле, в текстовое поле рядом с выпадающим списком
  3. "is Enabled" или "is Disabled"- использу.тся, чтобы включить или отключить поле в случае сработки триггера.
  4. "has class" или "hasn't class" - используется для присвоения или очистки CSS класса для данного поля. Введите тебуемый CSS класс  в текстовое поле рядом со списком.

Дополнительный режим

По адресу http://api.jquery.com/category/selectors/ вы можете выбрать селектор для любого элемента страницы (id, class, tag и др.). Селектор #Form# подставляется автоматически с реальным id вашей формы. Если вы не уверены, что понимаете, что это значит... лучше не трогайте это поле.

Триггеры (Triggers)

Триггеры это вторая часть поля с условием - непосредственно само условие. Состоит из оператора и значения оператора. Например, Field1 = myValue. На даный момент Seblod может работать с одним оператором, но это планируется изменить.

Значение (Value)

Значением может быть любой идентификатор поля  - номер, имя и др., а также любое текстовое или числовое значение. Также может быть несколько значений разделенных запятой без пробелов. Например "0,1,2".

Также вы можете использовать поле быстрого выбора, чтобы выбрать существующее значение поля. Для этого кликните по маленькой стрелке справа - откроется список возможных значений.

Conditional Fields. Trigger

Комментарии  

# Bugrat Подскажите, а есть ли возможность применять эти условия не к самим полям, а к их опциям? Например, мне нужно, чтобы определенный пункт (пункты) из поля select1 отображались только после выбора определенных пунктов в меню select2. Спасибо!

У Вас недостаточно прав для добавления комментариев. Для того, чтобы оставить свой комментарий необходимо зарегистрироваться на сайте.