Содержание

Тег {{input}}

Описание

Расширенная форма html-тега <input>. Является потомком lmbMacroFormElementTag.

Синтаксис

 {{input id='id' type='text|checkbox|hidden...' [...любые html-параметры]/}}

Атрибуты

Содержимое

Нет.

Widget (runtime компонент)

В откомпилированном виде каждому {{input}} тегу соответствует объект определенного класса или так называемый runtime компонент. То, какой компонент будет выбран, зависит от атрибута type.

Вот таблица соответствия:

ТипКласс компонента
text, hidden, image, buttonlmbMacroInputWidget
password, submit, reset, filelmbMacroFormElementWidget
checkbox, radiolmbMacroCheckableInputWidget

Как работают checkbox-ы и radio

Если для обычных input-ов атрибут value определяет значение поля, то для type='checkbox' и type='radio' атрибут value имеет другое значение: value используется как значение, с которым нужно сравнить некое checked_value.

Этот checked_value определяется следующим образом:

Потом на основе value и checked_value вычисляется, нужно ли выводить (рендерить) для тега <input> атрибут checked. Атрибут checked выводится если:

checked_value value пример
массив есть в массиве {{input type="checkbox" checked_value="$#obj->getTypesArray()" value="foo"}}
скаляр равен checked_value {{input type="checkbox" checked_value="foo" value="foo"}}
скаляр отсутствует {{input type="checkbox" checked_value="foo"}}
0 или false 0 {{input type="checkbox" checked_value="0" value="0"}}

или если он указан явно.

Пример использования

text, hidden

  <label for='name'>Имя и фамилия:</label>
  {{input type="text" name="name" id="name" title="Имя и фамилия"/}}

checkbox

<? $bar = 1; ?>
{{input type="checkbox" id="test" name="my_input" value="1" checked_value="{$bar}" /}}

Получим:

 <input type="checkbox" id="test" name="my_input" value="1" checked="true"/>

radio

  Выберите тип пользователя:
  <label for='type_user'>{{input type="radio" name="member_type" id="type_user" value='1' title='Фотограф' checked='true'/}}Фотограф</label>
  <label for='type_model'>{{input type="radio" name="member_type" id="type_model" value='2' title='Модель'/}}Модель</label>