使用选项卡小部件将 ActiveForm 字段拆分为不同的选项卡

2024-04-30

我正在创建一个表单视图,我想使用官方选项卡小部件以选项卡结构组织表单字段。

是否可以使用包含活动表单字段的 div 元素的 id(或类)来初始化选项卡小部件?


如何管理它的一个示例如下:

  1. 首先,将您的联系表单分为每个选项卡的一个视图文件。
  2. 将 ActiveForm::begin() 和 ActiveForm::end() 放在 Tabs::widget() 周围
  3. 使用参数 $model 和 $form 将联系表单页面渲染为内容

示例代码:

视图/站点/contact.php

<?php

/* @var $this yii\web\View */
$this->title = 'Contact';

use yii\bootstrap\Tabs;
use yii\bootstrap\ActiveForm;
?>


<?php $form = ActiveForm::begin(['id' => 'contact-form']); ?>
<?= Tabs::widget([
        'items' => [
            [
                'label' => 'One',
                'content' => $this->render('contact_form1', ['model' => $model, 'form' => $form]),
                'active' => true
            ],
            [
                'label' => 'Two',
                'content' => $this->render('contact_form2', ['model' => $model, 'form' => $form]),
            ],
        ]]);
 ?>
    <?php ActiveForm::end(); ?>

视图/site/contact_form1.php

<?= $form->field($model, 'name') ?>
<?= $form->field($model, 'email') ?>
<?= $form->field($model, 'subject') ?>

视图/site/contact_form2.php

<?php
use yii\helpers\Html;
use yii\captcha\Captcha;
?>

<?= $form->field($model, 'body')->textArea(['rows' => 6]) ?>
<?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [
    'template' => '<div class="row"><div class="col-lg-3">{image}</div><div    class="col-lg-6">{input}</div></div>',
]) ?>
<div class="form-group">
<?= Html::submitButton('Submit', ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?>
</div>

希望这可以帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用选项卡小部件将 ActiveForm 字段拆分为不同的选项卡 的相关文章

随机推荐