Я создал CRUD
, используя Yii2
. Теперь я добавил multi-tab
используя bootstrap
http://getbootstrap.com/javascript/#tabs-examplesYii2: как сделать вкладку начальной загрузки активным, если есть какая-либо ошибка yii2
Теперь у меня есть некоторые правила проверки на поле, как required validation
. , когда кнопка «Сохранить» нажата, на активной вкладке отображается ошибка, но если на неактивной вкладке есть какая-либо ошибка, она не отправит форму. , если в активной вкладке есть какая-либо ошибка, пользователь исправит их, выполнив правильное действие, но он не поймет, что на других вкладках есть и ошибки.
Так что я хочу, если в другой вкладке есть какая-либо ошибка, тогда эта вкладка станет активной.
, и если пользователь удалит всю ошибку проверки на активной вкладке, попробуйте повторно отправить форму, после чего она снова переместится к следующей ошибке, содержащей вкладку.
вот мой код формы
<?php $form = ActiveForm::begin(); ?>
<div class="nav-tabs-horizontal">
<ul class="nav nav-tabs nav-tabs-line" data-plugin="nav-tabs" role="tablist">
<li class="active" role="presentation"><a data-toggle="tab" href="#user" arria-controls="user" role="tab">User Details</a></li>
<li role="presentation"><a data-toggle="tab" href="#company" aria-controls="company" role="tab">Company Details</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="user" role="tabpanel">
<div class="form-group form-material">`
<?= $form->field($model, 'first_name')->textInput(['placeholder'=>'First Name']); ?>
</div>
<div class="form-group form-material">
<?= $form->field($model, 'last_name')->textInput(['placeholder'=>'Last Name']); ?>
</div>
<div class="form-group form-material">
<?= $form->field($model, 'email')->input('email'); ?>
</div>
<div class="form-group form-material">
<?= $form->field($model, 'password')->passwordInput(['placeholder'=>'Password']);?>
</div>
<div class="form-group form-material">
<?= $form->field($model, 'repeatpassword')->passwordInput(['placeholder'=>'Repeat Password']);?>
</div>
</div>
<div class="tab-pane" id="company" role="tabpanel">
<div class="form-group form-material">
<?= $form->field($company, 'Title')->textInput(['maxlength' => true]); ?>
</div>
<div class="form-group form-material">
<?= $form->field($company, 'Website')->textInput(['maxlength' => true]); ?>
</div>
<div class="form-group form-material">
<?= $form->field($company, 'Description')->textarea(['rows' => 6]); ?>
</div>
<div class="form-group form-material">
<?= $form->field($company, 'Status')->dropDownList(['Active' =>'Active','Deactive'=>'Deactive','Pending'=>'Pending'],['prompt'=>'']) ?>
</div>
</div>
</div>
<?= Html::submitButton("Save", ["class" => "btn btn-success"]); ?>
</div>
<?php ActiveForm::end(); ?>
Спасибо @Andrei Gheorghiu за ваш ответ. Я ценю ваши ответы. Но приведенный выше код - это всего лишь фрагмент кода. У меня большое количество полей, поэтому я не могу работать с одной прокручиваемой частью. Я прикрепляю изображение, которое выводит мою форму. , пожалуйста, проверьте это и предложите лучший вариант. Я использую правила проверки Yii2, поэтому я не хочу писать свои собственные правила js для проверки, пока это не последний вариант. Спасибо –