Yii2 添加一个不在模型中的表单字段
Yii2 Add a Form field not in model
据我们所知,
<?= $form->field($model, 'name_field')->textInput() ?>
在 model/table 中添加连接到 'name_field' 的文本字段。
我想添加一个不在 model/table 中的字段,然后 运行 一些 JS 在失去焦点时计算其他字段。
首先如何添加未连接到模型的自由文本字段?
其次,有没有人有将 JS/Jquery 添加到 _form.php 的示例?
Html
class contains the functions for generation of fields. In fact, your code above ends up calling Html::textInput()
。添加字段
<?= Html::textInput("name", $value) ?>
要将 javascript 添加到视图,只需使用 registerJs()
:
$this->registerJs("alert('true');");
您可以使用与 ActiveField 相同的方式呈现字段,使用标签和 classes。例如,我们将 Cc 字段添加到 Mail 表单。
首先显示 To: 字段(在模型中):
<?= $form->field($model, 'to')->textInput() ?>
让我们添加 Cc 字段(不在模型中):
<?= Html::beginTag('div', ['class' => 'form-group field-mail-cc']) ?>
<?= Html::label('Cc:', 'mail-cc', ['class' => 'control-label']) ?>
<?= Html::textInput('Mail[cc]', '', ['id' => 'mail-cc', 'class' => 'form-control']) ?>
<?= Html::endTag('div') ?>
class 和 id 名称 mail-cc 和 field-mail-cc 遵循 ActiveForm 命名模式。输入名称 Mail[cc] 将您的字段添加到 ActiveForm 组中,因此您可以使用通常的方式轻松检索它
$form = Yii::$app->request->post('Mail');
据我们所知,
<?= $form->field($model, 'name_field')->textInput() ?>
在 model/table 中添加连接到 'name_field' 的文本字段。
我想添加一个不在 model/table 中的字段,然后 运行 一些 JS 在失去焦点时计算其他字段。
首先如何添加未连接到模型的自由文本字段? 其次,有没有人有将 JS/Jquery 添加到 _form.php 的示例?
Html
class contains the functions for generation of fields. In fact, your code above ends up calling Html::textInput()
。添加字段
<?= Html::textInput("name", $value) ?>
要将 javascript 添加到视图,只需使用 registerJs()
:
$this->registerJs("alert('true');");
您可以使用与 ActiveField 相同的方式呈现字段,使用标签和 classes。例如,我们将 Cc 字段添加到 Mail 表单。
首先显示 To: 字段(在模型中):
<?= $form->field($model, 'to')->textInput() ?>
让我们添加 Cc 字段(不在模型中):
<?= Html::beginTag('div', ['class' => 'form-group field-mail-cc']) ?>
<?= Html::label('Cc:', 'mail-cc', ['class' => 'control-label']) ?>
<?= Html::textInput('Mail[cc]', '', ['id' => 'mail-cc', 'class' => 'form-control']) ?>
<?= Html::endTag('div') ?>
class 和 id 名称 mail-cc 和 field-mail-cc 遵循 ActiveForm 命名模式。输入名称 Mail[cc] 将您的字段添加到 ActiveForm 组中,因此您可以使用通常的方式轻松检索它
$form = Yii::$app->request->post('Mail');