{{tag>yii2 frameworks}}

====== Yii2 Form ======

<code php>
// Active fields
$form->field($model, $attribute)->input($type);

// Not active fields
Html::input($type);
</code>

===== JS =====

<code javascript>
$('#myform').on('beforeValidate', function (event, messages, deferreds) {
    // Вызывается до валидации всей формы сразу после нажатия submit.
    // Тут можно провести дополнительные проверки.
});

$('#myform').on('beforeSubmit', function () {
    // Вызывается после удачной валидации всех полей и до того как форма отправляется на северер.
    // Тут можно отправить форму через AJAX. Не забудьте вернуть false для того, чтобы форма не отправлялась как обычно.
});
</code>

ActiveForm стали частью API, что позволяет легче создавать динамичные формы с поддержкой валидации добавляемых полей на стороне клиента.

<code javascript>
$('#myform').yiiActiveForm('add', {
    'id': 'address',
    'name': 'address',
    'container': '.field-address',
    'input': '#address',
    'error': '.field-address .help-block'
});
</code>

https://github.com/yiisoft/yii2/blob/master/framework/assets/yii.activeForm.js
===== Helpers =====

  * [[http://www.yiiframework.com/extension/yii2-helpers|yii2-helpers]] (Contrib)

===== Widgets =====

  * [[yii2:view:widgets|Widgets]]
  * [[http://www.yiiframework.com/extension/yii2-widgets/|yii2-widgets]] (Contrib)

=== ActiveForm ===

  * [[yii2:form:ActiveField|ActiveField]]
    * [[yii2:form:textInput|textInput]]
    * [[yii2:form:radioList|radioList]]
    * [[yii2:form:listBox|listBox]]
    * [[yii2:form:dropDownList|dropDownList]]

=== Html ===

  * <code php>
<?= Html::hiddenInput('type', $type ) ?>
</code>