Yii2 — Проверка AJAX без $form-> field()

#validation #yii

#проверка #yii

Вопрос:

У меня есть форма, но поля ввода к ней не привязаны, поэтому вместо $form->field() этого я должен использовать Html::textInput('ALG['.$x .'][pcs]', $models->pcs) , потому что это похоже на несколько моделей одного и того же типа в одной форме, но поля ввода находятся в виде сетки для лучшего обзора, а не в виде Yii: сбор табличного ввода (когда у вас есть несколько сотен моделей, это будет сбивать с толку). Можно ли использовать проверку AJAX для этих входных данных, отличных от формы Html::textInput() ?

Ответ №1:

Почему вы не используете $form->field() ? Если из-за сложного входного имени вы можете переопределить значение по умолчанию и установить свое, передав параметр name для ввода так же, как вы назначаете ему класс.

Примечание: Это применимо только в том случае, если вы работаете с ActiveRecord .

Комментарии:

1. Спасибо за ваш комментарий, я обновил вопрос для лучшего понимания.

2. Если вы организуете это правильно, да, вы можете и без выхода из поведения моделей. Вы можете работать с активной записью и правилами. Проверьте табличный ввод, и вы найдете способ. Если нет, вам нужно создать проверку самостоятельно, потому что ActiveForm, который управляет вашими формами в клиенте, насколько я знаю, предполагает модель на стороне сервера.

Ответ №2:

Попробуйте что-то вроде этого:

 <?= Html::activeLabel($model, '['.$x  .'][pcs]'); ?>

<?= Html::activeTextInput($model, '['.$x  .'][pcs]'); ?>

<?= Html::error($model, '['.$x  .'][pcs]'); ?>
  

Где $model — объект модели ALG.