yii2 在焦点/按键上禁用验证错误消息

示例

默认情况下,会出现以下错误消息,textbox在<div class="help-block"></div>上使用keyUp按下提交按钮后,如果任何验证约束得不到满足。

有时我们只想提交一条消息,即在onKeyup事件时不进行验证。

让我们检查yii2/widgets/ActiveForm.php文件:

<?php

namespace yii\widgets;

use Yii;
use yii\base\InvalidCallException;
use yii\base\Widget;
use yii\base\Model;
use yii\helpers\ArrayHelper;
use yii\helpers\Url;
use yii\helpers\Html;
use yii\helpers\Json;

class ActiveForm extends Widget
{
  public $action = '';
  public $method = 'post';
  public $options = [];
  .
  .
  .
  public $validateOnSubmit = true;
  public $validateOnChange = true;
  public $validateOnBlur = true;
  public $validateOnType = false;
  
  .
  .
  .
  
}

在那里我们看到默认$validateOnBlur设置为true。更改框架文件是很不好的事情,因此在使用表单时,我们需要覆盖它:

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