Jump to content

Переключатели

Часто в дизайне формы вы хотите отображать или скрывать группы полей в зависимости от значений других полей. Например, предположим, что у вас есть поле Да/Нет, которое активирует некоторый функционал, и некоторые другие поля, которые управляют работой этой функции. Когда пользователь выбирает 'Нет' для отключения функции, вы можете скрыть другие поля с помощью переключателей (и показывать их автоматически, если настройка включена). Делая это, вы упрощаете дизайн своей формы и облегчаете пользователям понимание каждого поля, которое они видят.

Invision Community имеет встроенную поддержку такого поведения в формах с использованием функций переключения. Это автоматический процесс - вы просто указываете соответствующие идентификаторы элементов при создании своей формы.

Использование переключателей формы

Доступные опции зависят от типа поля. Например, тип ДаНет имеет два параметра: togglesOn (который определяет, какие элементы будут отображаться, когда для параметра установлено значение "Да") и togglesOff (который определяет, какие элементы будут отображаться, когда для параметра установлено значение "Нет"). Select имеет один параметр переключения, который принимает массив, указывающий какие элементы должны отображаться для каждого из доступных значений. Тип Number имеет параметр unlimitedToggles, отвечающий за то, какие элементы отображаются, когда установлен флажок "Без ограничений", а параметр unlimitedToggleOn отменяет это поведение, когда флажок снят. Для получения дополнительной информации смотрите исходный код для каждого типа элемента в директории system/Helpers/Form.

Все опции переключения принимают массив идентификаторов HTML-элементов, которые следует переключать. Например, чтобы переключить элемент с ID "myElement" из поля YesNo, вы должны:

$form->add( new \IPS\Helpers\Form\YesNo( 'yes_no_field', NULL, TRUE, array( 'togglesOn' => array( 'myElement' ) ) ) );

Обратите внимание: если вы планируете переключать другие элементы формы, вам нужно будет вручную указать ID элемента (последний параметр конструктора поля). Например, чтобы поле YesNo переключило текстовое поле, мы также должны указать идентификатор у данного текстового поля:

$form->add( new \IPS\Helpers\Form\YesNo( 'yes_no_field', NULL, TRUE, array( 'togglesOn' => array( 'text_field_container' ) ) ) ); 
$form->add( new \IPS\Helpers\Form\Text( 'text_field', NULL, TRUE, array(), NULL, NULL, NULL, 'text_field_container' ) );

 




Messenger

    ×
    ×
    • Create New...

    Important Information

    By using our site you agree to our Privacy Policy