在焦点/按键上禁用 Yii 验证错误消息 - Yii2

Disable Yii Validation Error Message on focus / key up - Yii2

默认情况下,错误消息出现在 keyuppressing 表单提交按钮之后(如果该特定属性存在任何错误)。这没关系。工作得很好。

但是,是否可以在 key up 上显示 disable 错误消息?意思是,错误消息(如果有的话)应该只在按下提交按钮时出现。

查看

<?php $form = ActiveForm::begin([ 'id' => 'register-form']); ?>
    <?= $form->field($model, 'first_name',['inputOptions' => ['class' => 'form-control fname','placeholder'=>'First Name']])->label(false); ?>
    .
    .
<p><?= Html::submitButton('REGISTER', ['name' => 'register-button']) ?></p>     

控制器

public function actionRegister() 
{
  $model = new Users(); // User Model
  if ($model->load(Yii::$app->request->post())) {

    // For Ajax Email Exist Validation
    if(Yii::$app->request->isAjax ) {
      Yii::$app->response->format = Response::FORMAT_JSON;
      return ActiveForm::validate($model);
    }
        .
        .
    }
}

我找到了

$form = ActiveForm::begin(['fieldConfig' => ['template' => '{label}{input}']]);

但是,在这个回答中。错误消息既不会出现在按键上,也不会出现在按下提交按钮时。要显示错误摘要,我需要使用 <?= $form->errorSummary($model) ?>。那么,有什么方法可以禁用 key up 错误消息并显示错误消息,因为它只在 pressing 提交按钮上显示。

添加

'enableClientValidation'=>false

到您的表单选项:

<?php $form = ActiveForm::begin([ 'id' => 'register-form','enableClientValidation'=>false]); ?>
    <?= $form->field($model, 'first_name',['inputOptions' => ['class' => 'form-control fname','placeholder'=>'First Name']])->label(false); ?>
    .
    .
<p><?= Html::submitButton('REGISTER', ['name' => 'register-button']) ?></p>

我在 .../widgets/ActiveForm.php 中找到了。一个选项是 validateOnBlur,默认设置为 true。所以,我在我的表格中将其更改为 false

@Gamitg & @Jithin: Thanks For Your Kind Support.

<?php $form = ActiveForm::begin([ 'id' => 'register-form','validateOnBlur' => false]); ?>

现在,一切正常。