在警告框中显示活动表格的输入错误yii2

时间:2018-04-10 17:40:36

标签: php jquery validation yii2

我的网络应用程序中有一个表单,用yii2框架下的php语言编写。 现在我用自定义css设计了自己的表单,我不想在每个输入下显示错误。 我已取消以yii2格式显示fieldconfig的错误。 但是对于没有向用户显示输入错误的系统来说,这是一个错误。 我想在另一个div或警告框中显示错误。 我该怎么做?

这是我的表格

<?php
                $form = ActiveForm::begin([
                    'enableClientValidation' => true,
                    fieldConfig' => ['template' => "{label}\n{input}"]
                    ])
                ?>

                <?= $form->field($regModel, 'name')->textInput(['maxlength' => true, 'class' => 'txtbox_name', 'placeholder' => 'نام'])->label('') ?>

                <?= $form->field($regModel, 'family')->textInput(['maxlength' => true, 'class' => 'txtbox_name', 'placeholder' => 'نام خانوادگی'])->label('') ?>

                <?= $form->field($regModel, 'email')->textInput(['maxlength' => true, 'class' => 'txtboxpass', 'placeholder' => 'پست الکترونیک'])->label('') ?>

                <?= $form->field($regModel, 'password')->passwordInput(['maxlength' => true, 'class' => 'txtboxpass', 'placeholder' => 'رمز عبور'])->label('') ?>

                <?= $form->field($regModel, 'password')->passwordInput(['maxlength' => true, 'class' => 'txtboxpass', 'placeholder' => 'رمز عبور'])->label('') ?>

                <?= $form->field($regModel, 'grade_id')->dropDownList(\yii\helpers\ArrayHelper::map(\app\models\Grade::find()->all(), 'id', 'name'), ['prompt' => 'انتخاب مقطع', 'class' => 'drglist'])->label(''); ?>

                <div class="form-group">
                    <?= Html::submitButton('ثبت نام', ['class' => 'btn_sabt', 'id' => 'reg']) ?>
                </div>        
                <?php ActiveForm::end(); ?>  

请帮帮我这是必要的/ 谢谢

2 个答案:

答案 0 :(得分:2)

对于错误摘要:

<?= $form->errorSummary($regModel) ?>

隐藏帮助栏

  1. 选项#1:不要使用activeform,而是尝试HTML帮助程序类:

    use yii\helper\Html;
    
    <?= Html::input('text', 'username', $user->name, ['class' => $username]) ?>
    
  2. 选项#2:您可以尝试使用activeField级别:

    // With 'default' layout you would use 'template' to size a specific field:
    echo $form->field($model, 'demo', [
        'template' => '{label} 
            <div class="row">
              <div class="col-sm-4">{input}{error}{hint}</div>
            </div>'
    ]);
    
  3. 选项#3:设置为activeForm级别,使用Chrome或Mozilla中的inspect debug工具验证元素:

    <?php $form = ActiveForm::begin([
        'options' => ['class' => 'form-horizontal'],
        'fieldConfig' => [
            'template' => "{label}\n{input}\n{hint}",
            //'errorOptions' => ['class' => 'help-block'],
        ],
    ]); ?>
    
  4. 参考:

答案 1 :(得分:0)

您可以使用Html::errorSummary()在任何地方显示错误摘要:

<?= Html::errorSummary($regModel) ?>